Why does yum return 'Error: "Protected multilib versions" transaction error for Red Hat Enterprise Linux 6'?

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 6
  • yum-3.2.29-17.el6.noarch

Issue

  • yum install or yum update returns the Error: "Protected multilib versions" transaction error
  • The following error is received when installing or updating with yum

    [root@rhel6 ~]# yum install python.i686
    Loaded plugins: rhnplugin
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package python.i686 0:2.6.5-3.el6_0.2 will be installed
    [ SNIP ]
    --> Finished Dependency Resolution
    Error: Protected multilib versions: python-2.6.5-3.el6_0.2.i686 != python-2.6.5-3.el6.x86_64
    Error: Protected multilib versions: python-libs-2.6.5-3.el6.i686 != python-libs-2.6.5-3.el6_0.2.x86_6
    
  • yum update does not work with protected_multilib option on

Resolution

Before disabling this option make sure that you have cleared the yum cache with rm -rf /var/cache/yum/* to make sure this issue is not due to an old cache, that you are using the right channel and that the content is being provided to the system without any issue. This solution should only ever be used when it is expected to have a discrepancy of versions in libraries available in different architectures ; if you don't know if you need it you probably do not and should instead investigate the cache and the repositories used to provide updates to your system

  • yum-3.2.29-17.el6 enables the protected_multilib mode by default. Looking the yum.conf man page, we can highlight an exception rule which can be made:

    protected_multilib Either ‘1’ or ‘0’. 
    This tells yum whether or not it should perform a  check  to  
    make  sure  that multilib packages are the same version. 
    
    For example, if this option is off (rpm behaviour) 
    pkgA-1.x86_64 and pkgA-2.i386
    can be installed at the same time.  However  this
    is  very  rarely desired.  
    
    Install only packages, like the kernel, are exempt from this check.
    The default is ‘1’.
    
  • To make the system able to install multi-lib packages, follow the steps below:

    • Edit the /etc/yum.conf disabling the protected_multilib option

      # vim /etc/yum.conf
      protected_multilib=0
      
  • Afterwards, try to install the package desired

    [root@rhel6 ~]# yum install python.i686
    Loaded plugins: rhnplugin
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package python.i686 0:2.6.5-3.el6_0.2 will be installed
    --> Processing Dependency: libdb-4.7.so for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libpython2.6.so.1.0 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libffi.so.5 for package: python-2.6.5-3.el6_0.2.i686
    { .... SNIP ...... }
    Installed:
    python.i686 0:2.6.5-3.el6_0.2                                                                                        
    
    Dependency Installed:
    bzip2-libs.i686 0:1.0.5-7.el6_0  db4.i686 0:4.7.25-16.el6                  expat.i686 0:2.0.1-9.1.el6
    gdbm.i686 0:1.8.0-36.el6         glibc.i686 0:2.12-1.25.el6                keyutils-libs.i686 0:1.4-1.el6
    krb5-libs.i686 0:1.9-9.el6       libcom_err.i686 0:1.41.12-7.el6           libffi.i686 0:3.0.5-3.2.el6
    libselinux.i686 0:2.0.94-5.el6   ncurses-libs.i686 0:5.7-3.20090208.el6    nss-softokn-freebl.i686 0:3.12.9-3.el6
    openssl.i686 0:1.0.0-10.el6      python-libs.i686 0:2.6.5-3.el6            readline.i686 0:6.0-3.el6
    sqlite.i686 0:3.6.20-1.el6       zlib.i686 0:1.2.3-25.el6        
    
    Dependency Updated:
    bzip2-libs.x86_64 0:1.0.5-7.el6_0    glibc.x86_64 0:2.12-1.25.el6           glibc-common.x86_64 0:2.12-1.25.el6        
    krb5-libs.x86_64 0:1.9-9.el6         libcom_err.x86_64 0:1.41.12-7.el6      nss-softokn-freebl.x86_64 0:3.12.9-3.el6   
    openssl.x86_64 0:1.0.0-10.el6        python-libs.x86_64 0:2.6.5-3.el6_0.2
    
    Complete!
    

Root Cause

  • yum-3.2.29-17.el6 incorporates the protected_multilib by default. If multi-lib packages are wanted, an exception must be made.

Diagnostic Steps

  • Check if yum version are equal or major than yum-3.2.29-17.el6
  • Use --setopt=protected_multilib=false --skip-broken at yum command line:

    [root@rhel6 ~]# yum install --setopt=protected_multilib=false --skip-broken python.i686
    Loaded plugins: rhnplugin
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package python.i686 0:2.6.5-3.el6_0.2 will be installed
    --> Processing Dependency: libdb-4.7.so for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libpython2.6.so.1.0 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libffi.so.5 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libreadline.so.6 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libtinfo.so.5 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libexpat.so.1 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libc.so.6(GLIBC_2.7) for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libssl.so.10 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libcrypto.so.10 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libsqlite3.so.0 for package: python-2.6.5-3.el6_0.2.i686
    --> Processing Dependency: libpanelw.so.5 for package: python-2.6.5-3.el6_0.2.i686
     { SNIP } 
    ---> Package libcom_err.x86_64 0:1.41.12-7.el6 will be an update
    ---> Package nss-softokn-freebl.x86_64 0:3.12.7-1.1.el6 will be updated
    ---> Package nss-softokn-freebl.i686 0:3.12.9-3.el6 will be installed
    ---> Package nss-softokn-freebl.x86_64 0:3.12.9-3.el6 will be an update
    --> Running transaction check
    ---> Package keyutils-libs.i686 0:1.4-1.el6 will be installed
    ---> Package libselinux.i686 0:2.0.94-5.el6 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ==========================================================================================================================
     Package                        Arch               Version                         Repository                        Size
    ==========================================================================================================================
    Installing:
     python                         i686               2.6.5-3.el6_0.2                 rhel-x86_64-server-6             4.8 M
    Installing for dependencies:
     bzip2-libs                     i686               1.0.5-7.el6_0                   rhel-x86_64-server-6              36 k
     db4                            i686               4.7.25-16.el6                   rhel-x86_64-server-6             580 k
     expat                          i686               2.0.1-9.1.el6                   rhel-x86_64-server-6              78 k
     gdbm                           i686               1.8.0-36.el6                    rhel-x86_64-server-6              29 k
     glibc                          i686               2.12-1.25.el6                   rhel-x86_64-server-6             4.3 M
     keyutils-libs                  i686               1.4-1.el6                       rhel-x86_64-server-6              20 k
     krb5-libs                      i686               1.9-9.el6                       rhel-x86_64-server-6             713 k
     libcom_err                     i686               1.41.12-7.el6                   rhel-x86_64-server-6              35 k
     libffi                         i686               3.0.5-3.2.el6                   rhel-x86_64-server-6              23 k
     libselinux                     i686               2.0.94-5.el6                    rhel-x86_64-server-6             107 k
     ncurses-libs                   i686               5.7-3.20090208.el6              rhel-x86_64-server-6             251 k
     nss-softokn-freebl             i686               3.12.9-3.el6                    rhel-x86_64-server-6             115 k
     openssl                        i686               1.0.0-10.el6                    rhel-x86_64-server-6             1.4 M
     python-libs                    i686               2.6.5-3.el6                     rhel-x86_64-server-6             600 k
     readline                       i686               6.0-3.el6                       rhel-x86_64-server-6             176 k
     sqlite                         i686               3.6.20-1.el6                    rhel-x86_64-server-6             307 k
     zlib                           i686               1.2.3-25.el6                    rhel-x86_64-server-6              72 k
    Updating for dependencies:
     bzip2-libs                     x86_64             1.0.5-7.el6_0                   rhel-x86_64-server-6              37 k
     glibc                          x86_64             2.12-1.25.el6                   rhel-x86_64-server-6             3.8 M
     glibc-common                   x86_64             2.12-1.25.el6                   rhel-x86_64-server-6              14 M
     krb5-libs                      x86_64             1.9-9.el6                       rhel-x86_64-server-6             708 k
     libcom_err                     x86_64             1.41.12-7.el6                   rhel-x86_64-server-6              35 k
     nss-softokn-freebl             x86_64             3.12.9-3.el6                    rhel-x86_64-server-6             122 k
     openssl                        x86_64             1.0.0-10.el6                    rhel-x86_64-server-6             1.4 M
     python-libs                    x86_64             2.6.5-3.el6_0.2                 rhel-x86_64-server-6             618 k
    
    Transaction Summary
    ==========================================================================================================================
    Install      18 Package(s)
    Upgrade       8 Package(s)
    
    Total download size: 34 M
    Is this ok [y/N]:
    
  • Component
  • yum

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments