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:
- Regularly clean up unused packages:
sudo package-cleanup --orphans
- Be cautious when mixing 32-bit and 64-bit packages
- 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.