[Yum] Problem with multilib update and rpm_check_debug

Jason Henderson jasonhen at rogers.com
Tue Nov 5 15:14:46 UTC 2013

I have a Linux distro (based on CentOS 6.4) which contains both i686 and x86_64 versions of some rpm packages. In the example below I want to upgrade the installed glibc.i686, glibc.x86_64 and glibc-common.i686 packages at the same time.

[root at 64-bit]# rpm -qa | grep glibc

Yum package versions installed:

[root at 64-bit rpm]# rpm -qa | grep yum

RPM package version installed:
[root at 64-bit ~]# rpm -q rpm

Yum figures out the dependencies correctly as shown below.

[root at 64-bit rpm]# yum update glibc --nogpgcheck
Dependencies Resolved

 Package                      Arch                   Version                              Repository               Size
 glibc                        i686                   2.12-1.107.el6_4.5                   myrepo                 4.3 M
 glibc                        x86_64                 2.12-1.107.el6_4.5                   myrepo                 3.8 M
Updating for dependencies:
 glibc-common                 i686                   2.12-1.107.el6_4.5                   myrepo                  14 M
 nscd                         i686                   2.12-1.107.el6_4.5                   myrepo                 211 k

Transaction Summary
Upgrade       4 Package(s)

Total download size: 23 M
Is this ok [y/N]: y

The problem occurs when the transaction check takes place:

Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
libc.so.6 is needed by nscd-2.12-1.107.el6_4.5.i686
libc.so.6(GLIBC_2.0) is needed by nscd-2.12-1.107.el6_4.5.i686
libc.so.6(GLIBC_2.1) is needed by nscd-2.12-1.107.el6_4.5.i686
libc.so.6(GLIBC_2.1.1) is needed by nscd-2.12-1.107.el6_4.5.i686
libc.so.6(GLIBC_2.1.3) is needed by nscd-2.12-1.107.el6_4.5.i686
libc.so.6 is needed by glibc-common-2.12-1.107.el6_4.5.i686
libc.so.6(GLIBC_2.0) is needed by glibc-common-2.12-1.107.el6_4.5.i686
ld-linux.so.2 is needed by (installed) libcom_err-1.41.12-14.el6_4.2.i686
ld-linux.so.2 is needed by (installed) libstdc++-4.4.7-3.el6.i686

It looks to me like the underlying rpm transaction check is broken.

I verified that the rpm command ignores the glibc.i686 package when glibc.x86_64 proceeds it in the list of packages to upgrade. The end result being that the glibc.i686 package is removed from the system.

[root at 64-bit]# rpm -Uvh --nodeps glibc-common-2.12-1.107.el6_4.5.i686.rpm glibc-2.12-1.107.el6_4.5.i686.rpm glibc-2.12-1.107.el6_4.5.x86_64.rpm nscd-2.12-1.107.el6_4.5.i686.rpm

warning: glibc-common-2.12-1.107.el6_4.5.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
warning: package glibc = 2.12-1.107.el6_4.5 was already added, skipping glibc = 2.12-1.107.el6_4.5

1:glibc                   [ 33%]
2:glibc-common     [ 67%]
3:nscd                   [100%]

[root at 64-bit]# rpm -qa | grep glibc

If  I omit the --nodeps option in the above rpm command the same dependency errors are produced that were shown in the yum update command above since the rpm dependency resolution is effectively ignoring the glibc.i686 package given on the command line.

When using yum updateis there a way to turn off rpm_check_debug?



More information about the Yum mailing list