How to resolve yum errors during update – CentOS

chuckieDub asked:

I’m running CentOS 6.4 with Apache, and am having trouble running Easy Apache update through WHM. It fails with errors related to yum, so I decided to update yum manually.

Here’s the last view lines of the output when running yum update –skip-broken

 Packages skipped because of dependency problems:
        compat-expat1-1.95.8-8.el6.x86_64 from base
        git-1.8.2.1-1.el5.x86_64 from epel
        glibc-2.12-1.107.el6_4.4.i686 from updates
        glibc-2.12-1.107.el6_4.4.x86_64 from updates
        glibc-devel-2.12-1.107.el6_4.4.i686 from updates
        glibc-devel-2.12-1.107.el6_4.4.x86_64 from updates
        glibc-headers-2.12-1.107.el6_4.4.x86_64 from updates
        glibc-static-2.12-1.107.el6_4.4.x86_64 from updates
        nscd-2.12-1.107.el6_4.4.x86_64 from updates
    Error:  Multilib version problems found. This often means that the root
           cause is something else and multilib version checking is just
           pointing out that there is a problem. Eg.:

             1. You have an upgrade for nss-softokn-freebl which is missing some
                dependency that another package requires. Yum is trying to
                solve this by installing an older version of nss-softokn-freebl of the
                different architecture. If you exclude the bad architecture
                yum will tell you what the root cause is (which package
                requires what). You can try redoing the upgrade with
                --exclude nss-softokn-freebl.otherarch ... this should give you an error
                message showing the root cause of the problem.

             2. You have multiple architectures of nss-softokn-freebl installed, but
                yum can only see an upgrade for one of those arcitectures.
                If you don't want/need both architectures anymore then you
                can remove the one with the missing update and everything
                will work.

             3. You have duplicate versions of nss-softokn-freebl installed already.
                You can use "yum check" to get yum show these errors.

           ...you can also use --setopt=protected_multilib=false to remove
           this checking, however this is almost never the correct thing to
           do as something else is very likely to go wrong (often causing
           much more problems).

           Protected multilib versions: nss-softokn-freebl-3.14.3-3.el6_4.i686 != nss-softokn-freebl-3.12.9-11.el6.x86_64
    Error: Protected multilib versions: libgcc-4.4.7-3.el6.i686 != libgcc-4.4.6-4.el6.x86_64
    ** Found 12 pre-existing rpmdb problem(s), 'yum check' output follows:
    bash-4.1.2-15.el6_4.x86_64 is a duplicate with bash-4.1.2-9.el6_2.x86_64
    centos-release-6-4.el6.centos.10.x86_64 is a duplicate with centos-release-6-3.el6.centos.9.x86_64
    12:dhcp-common-4.1.1-34.P1.el6_4.1.x86_64 is a duplicate with 12:dhcp-common-4.1.1-31.0.1.P1.el6.centos.1.x86_64
    frontpage-2002-SR1.2.i386 has missing requires of libexpat.so.0
    glibc-common-2.12-1.107.el6_4.4.x86_64 is a duplicate with glibc-common-2.12-1.80.el6_3.4.x86_64
    glibc-common-2.12-1.107.el6_4.4.x86_64 has missing requires of glibc = ('0', '2.12', '1.107.el6_4.4')
    libgcc-4.4.7-3.el6.x86_64 is a duplicate with libgcc-4.4.6-4.el6.x86_64
    nss-softokn-freebl-3.14.3-3.el6_4.x86_64 is a duplicate with nss-softokn-freebl-3.12.9-11.el6.x86_64
    sendmail-cf-8.14.4-8.el6.noarch has missing requires of sendmail = ('0', '8.14.4', '8.el6')
    setup-2.8.14-20.el6_4.1.noarch is a duplicate with setup-2.8.14-16.el6.noarch
    tzdata-2013c-2.el6.noarch is a duplicate with tzdata-2012c-3.el6.noarch
    xorg-x11-proto-devel-7.6-25.el6.noarch is a duplicate with xorg-x11-proto-devel-7.6-13.el6.noarch

I have not followed the steps that the errors suggest to do because i feel like there is a bigger underlying problem here with so many issues. What steps should I take to return for a fully working yum?


I answered:

This is occurring because you interrupted a previous update partway through, and never went back to finish it with yum-complete-transaction. Since the previous update was updating both 32-bit and 64-bit packages, this particular error occurs because they are out of sync with each other.

The things I would do, in order, are:

  1. Run yum-complete-transaction to attempt to finish the outstanding transaction. If this fails…

  2. Temporarily remove the conflicting package, update the system, and then restore the conflicting package.

    rpm --nodeps -e nss-softokn-freebl.{i686,x86_64}
    yum distro-sync
    yum install nss-softokn-freebl.{i686,x86_64}
    

This may fail with a different error, in which case you must resolve that error (though if it’s different, the resolution may be different!) and repeat until you have no further warnings about pre-existing rpmdb problems.


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.