Print | Rate this content

Red Hat Enterprise Linux 7 - "Protected multilib versions" Errors From yum Trying to Install 32-bit RPMs on a 64-bit OS Installation

Title: Red Hat Enterprise Linux 7 - "Protected multilib versions" Errors From yum Trying to Install 32-bit RPMs on a 64-bit OS Installation
Object Name: mmr_kc-0131971
Document Type: Support Information
Original owner: KCS - Linux
Disclosure level: Public
Version state: final
Environment
FACT:RHEL 7.1 (64-bit only OS)
FACT:32-bit libraries required to support 32-bit applications
Questions/Symptoms
SYMPTOM:Error: Protected multilib versions: XXXXX != YYYY
			
Cause
CAUSE:RHEL 7 is a 64-bit only OS installation.  However, RHEL 7 still fully
supports the execution of 32-bit applications, and so RHEL 7 provides 32-bit 
RPMs.  When trying to install the 32-bit RPMs, yum fails with a stream of 
"Error: Protected multilib versions" errors: 


					# yum install gtk2.i686
Error: Protected multilib versions: cairo-1.8.8-6.el6_6.i686 != cairo-1.12.14-6.el7.x86_64
Error: Protected multilib versions: audit-libs-2.3.7-5.el6.i686 != audit-libs-2.4.1-5.el7.x86_64
Error: Protected multilib versions: libstdc++-4.4.7-16.el6.i686 != libstdc++-4.8.3-9.el7.x86_64
Error: Protected multilib versions: libXcomposite-0.4.3-4.el6.i686 != libXcomposite-0.4.4-4.1.el7.x86_64
Error: Protected multilib versions: jasper-libs-1.900.1-16.el6_6.3.i686 != jasper-libs-1.900.1-26.el7_0.3.x86_64
Error: Protected multilib versions: libgcc-4.4.7-16.el6.i686 != libgcc-4.8.3-9.el7.x86_64
Error: Protected multilib versions: libXrender-0.9.8-2.1.el6.i686 != libXrender-0.9.8-2.1.el7.x86_64
Error: Protected multilib versions: libXcursor-1.1.14-2.1.el6.i686 != libXcursor-1.1.14-2.1.el7.x86_64
Error: Protected multilib versions: libXdamage-1.1.3-4.el6.i686 != libXdamage-1.1.4-4.1.el7.x86_64
Error: Protected multilib versions: krb5-libs-1.10.3-42.el6.i686 != krb5-libs-1.12.2-14.el7.x86_64
Error: Protected multilib versions: keyutils-libs-1.4-5.el6.i686 != keyutils-libs-1.5.8-3.el7.x86_64
Error: Protected multilib versions: fontconfig-2.8.0-5.el6.i686 != fontconfig-2.10.95-7.el7.x86_64
Error: Protected multilib versions: libgpg-error-1.7-4.el6.i686 != libgpg-error-1.12-3.el7.x86_64
Error: Protected multilib versions: libXrandr-1.4.1-2.1.el6.i686 != libXrandr-1.4.1-2.1.el7.x86_64
Error: Protected multilib versions: 1:dbus-libs-1.2.24-8.el6_6.i686 != 1:dbus-libs-1.6.12-11.el7.x86_64
Error: Protected multilib versions: 2:libpng-1.2.49-1.el6_2.i686 != 2:libpng-1.5.13-5.el7.x86_64
Error: Protected multilib versions: libXau-1.0.6-4.el6.i686 != libXau-1.0.8-2.1.el7.x86_64
Error: Protected multilib versions: freetype-2.3.11-15.el6_6.1.i686 != freetype-2.4.11-9.el7.x86_64
Error: Protected multilib versions: libtiff-3.9.4-10.el6_5.i686 != libtiff-4.0.3-14.el7.x86_64
Error: Protected multilib versions: avahi-libs-0.6.25-15.el6.i686 != avahi-libs-0.6.31-14.el7.x86_64
Error: Protected multilib versions: gdk-pixbuf2-2.24.1-6.el6_7.i686 != gdk-pixbuf2-2.28.2-4.el7.x86_64
Error: Protected multilib versions: gtk2-2.24.23-6.el6.i686 != gtk2-2.24.22-5.el7_0.1.x86_64
				
...

In general, the error "Protected multilib versions" means that version "X" of 
an RPM is installed for architecture "x86_64", and yum was told to install 
version "Y" of that same RPM for alternate architecture "i686".

To avoid problematic behavior where 32-bit and 64-bit versions of the same 
application behave differently, RHEL prevents installation of different RPM 
versions for different architectures.  While this behavior can be disabled 
by setting:

  protected_multilib=0

in /etc/yum/yum.conf, this is generally not recommended.  Instead, it is best 
to install the 32-bit RPM version that matches the 64-bit RPM version currently 
installed.

In this case, the issue is slightly different:

  Error: Protected multilib versions: cairo-1.8.8-6.el6_6.i686 !=
    cairo-1.12.14-6.el7.x86_64

While the 32-bit RPM version found by yum (cairo-1.8.8-6.el6_6.i686) is 
indeed different from what is currently installed (cairo-1.1 2.14-6.el7.x86_64),
more importantly the RPMs are from different OS distributions ("el7" versus 
"el6_6").  This means that yum is configured to pull RPMs from a RHEL 6 repo on 
this RHEL 7 system, which is not a valid configuration.
Answer/Solution
FIX:The solution is to:

1. Remove all RHEL 6 repos from this RHEL 7 server.

2. Using the normal RHEL 7 repo, install the 32-bit RPMs that match
   the 64-bit RPM version currently installed.

The availability and installation of 32-bit RPMs on RHEL7 is illustrated here:

# yum repolist
repo id                     repo name
rhel-7-server-rpms/x86_64   Red Hat Enterprise Linux 7 Server RPMs
...

					
# yum search gtk2 --showduplicates | grep -v x86_64
gtk2-2.24.22-5.el7.i686 : The GIMP ToolKit (GTK+), a library for creating GUIs
gtk2-2.24.22-5.el7_0.1.i686 : The GIMP ToolKit (GTK+), a library for creating
gtk2-2.24.28-8.el7.i686 : The GIMP ToolKit (GTK+), a library for creating GUIs

Show the currently installed 64-bit RPM version:

# rpm -q gtk2
gtk2-2.24.22-5.el7_0.1.x86_64

The 32-bit versions needed are installed by appending the needed architecture
("i686") to the same package version ("gtk2-2.24.22-5.el7_0.1").  So the command:

# yum install gtk2-2.24.22-5.el7_0.1.i686

will install the matching 32-bit version of the gtk2 RPM along with any 
dependencies.

© Copyright 2016 Hewlett-Packard Development Company, L.P.

Legal Disclaimer: Products sold prior to the November 1, 2015 separation of Hewlett-Packard Company into Hewlett Packard Enterprise Company and HP Inc. may have older product names and model numbers that differ from current models.

Provide feedback

Please rate the information on this page to help us improve our content. Thank you!
Document title: Red Hat Enterprise Linux 7 - "Protected multilib versions" Errors From yum Trying to Install 32-bit RPMs on a 64-bit OS Installation
Document ID: mmr_kc-0131971-11
How helpful was this document?
How can we improve this document?
Note: Only English language comments can be accepted at this time.
Please wait while we process your request.