Resolving Multilib Version Conflicts in CentOS 7: systemd-libs Mismatch Fix


5 views

When working with CentOS 7 (specifically version 7.3 x86_64), you might encounter package management conflicts that manifest as multilib version problems. The error message typically appears when attempting a yum update operation:

sudo yum update --exclude=kernel*,python* --skip-broken
Error: Multilib version problems found.
Protected multilib-versions: systemd-libs-219-30.el7_3.7.x86_64!=systemd-libs-219-30.el7_3.6.i686

This specific error indicates we have two versions of systemd-libs installed:

  • 64-bit version: 219-30.el7_3.7.x86_64
  • 32-bit version: 219-30.el7_3.6.i686

The package manager is protecting us from having mismatched versions across architectures, which is generally good practice but causes problems in this case.

Option 1: Clean up the architecture mismatch

# First, verify the installed packages:
rpm -qa | grep systemd-libs

# Remove the conflicting 32-bit version:
sudo yum remove systemd-libs-219-30.el7_3.6.i686

# Then retry the update:
sudo yum update --exclude=kernel*,python*

Option 2: Temporarily disable multilib protection

sudo yum update --exclude=kernel*,python* --setopt=protected_multilib=false

Note: Use this approach with caution as it can lead to system instability if other dependencies are affected.

If the problem persists, we can dig deeper with these commands:

# Check for dependency issues:
sudo package-cleanup --problems

# Verify repository metadata:
sudo yum clean all
sudo yum makecache

For developers who specifically need both architectures, consider:

# Explicitly install matching versions:
sudo yum install systemd-libs-219-30.el7_3.7.x86_64 systemd-libs-219-30.el7_3.7.i686

To avoid similar issues in the future:

  1. Regularly clean up unused packages: sudo package-cleanup --orphans
  2. Be cautious when mixing 32-bit and 64-bit packages
  3. Consider using yum-utils for better package management

When working with CentOS 7 systems, you might encounter the following error during package updates:

Error: Multilib version problems found.
Protected multilib-versions: systemd-libs-219-30.el7_3.7.x86_64 != systemd-libs-219-30.el7_3.6.i686

This occurs when:

  • You have both x86_64 and i686 versions of systemd-libs installed
  • The available updates don't match versions across architectures
  • Dependencies require specific version matching that isn't satisfied

Here are three approaches to resolve this:

Option 1: Exclude the Conflicting Package

Try running the update while excluding the problematic package:

sudo yum update --exclude=kernel*,python*,systemd-libs.i686 --skip-broken

Option 2: Remove the i686 Version

If you don't need 32-bit compatibility:

sudo yum remove systemd-libs.i686
sudo yum update --exclude=kernel*,python* --skip-broken

Option 3: Clean and Update

Clean the yum cache and try again:

sudo yum clean all
sudo yum makecache
sudo yum update --exclude=kernel*,python* --skip-broken

For persistent issues, check installed versions:

rpm -qa | grep systemd-libs
yum list installed systemd-libs*

To see dependency chains:

repoquery --requires --resolve systemd-libs

Avoid using --setopt=protected_multilib=false as it can lead to system instability. Always prefer proper version resolution over forcing installations.