Multiple version issue of glibc-common package on RHEL systems

  • 503 views
  • Read

These days we are doing some maintenance tasks on hundreds of RHEL servers and we update them using a shell script. We failed to update part of them and after I fixed the failure I would like to share the solution here.

Usually after the update script was run, we would reboot the servers to use the latest kernel and we found the failure was caused by the terminated yum update command abnormally. In other words, we rebooted the servers too early.

Run the command 'package-cleanup --dupes' and we would get the rpm packages with multiple versions:

[root@xxxxxx ~]# package-cleanup --dupes
Loaded plugins: fastestmirror
firewalld-filesystem-0.5.3-5.el7.noarch
firewalld-filesystem-0.6.3-2.el7_7.1.noarch
grub2-common-2.02-0.76.el7.1.noarch
grub2-common-2.02-0.80.el7.noarch
libipa_hbac-1.16.2-13.el7_6.8.x86_64
libipa_hbac-1.16.4-21.el7.x86_64
audit-libs-2.8.5-4.el7.x86_64
audit-libs-2.8.4-4.el7.x86_64
libsss_autofs-1.16.2-13.el7_6.8.x86_64
libsss_autofs-1.16.4-21.el7.x86_64
python-firewall-0.6.3-2.el7_7.1.noarch
python-firewall-0.5.3-5.el7.noarch
grub2-tools-2.02-0.76.el7.1.x86_64
grub2-tools-2.02-0.80.el7.x86_64
bind-license-9.11.4-9.P2.el7.noarch
bind-license-9.9.4-74.el7_6.1.noarch
samba-common-4.8.3-4.el7.noarch
samba-common-4.9.1-6.el7.noarch
libsss_sudo-1.16.4-21.el7.x86_64
libsss_sudo-1.16.2-13.el7_6.8.x86_64
nss-3.36.0-7.1.el7_6.x86_64
nss-3.44.0-4.el7.x86_64
python-sssdconfig-1.16.2-13.el7_6.8.noarch
python-sssdconfig-1.16.4-21.el7.noarch
libsss_idmap-1.16.4-21.el7.x86_64
libsss_idmap-1.16.2-13.el7_6.8.x86_64
NetworkManager-libnm-1.12.0-10.el7_6.x86_64
NetworkManager-libnm-1.18.0-5.el7_7.1.x86_64
grub2-pc-modules-2.02-0.80.el7.noarch
grub2-pc-modules-2.02-0.76.el7.1.noarch
dracut-033-554.el7.x86_64
dracut-033-564.el7.x86_64
sssd-client-1.16.2-13.el7_6.8.x86_64
sssd-client-1.16.4-21.el7.x86_64
plymouth-core-libs-0.8.9-0.31.20140113.el7.x86_64
plymouth-core-libs-0.8.9-0.32.20140113.el7.x86_64
libcom_err-1.42.9-13.el7.x86_64
libcom_err-1.42.9-16.el7.x86_64
dhcp-libs-4.2.5-77.el7.x86_64
dhcp-libs-4.2.5-68.el7_5.1.x86_64
openssl-libs-1.0.2k-16.el7_6.1.x86_64
openssl-libs-1.0.2k-19.el7.x86_64
selinux-policy-3.13.1-229.el7_6.12.noarch
selinux-policy-3.13.1-252.el7.1.noarch
libss-1.42.9-16.el7.x86_64
libss-1.42.9-13.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-7.4p1-16.el7.x86_64
dhcp-common-4.2.5-77.el7.x86_64
dhcp-common-4.2.5-68.el7_5.1.x86_64
grub2-tools-minimal-2.02-0.80.el7.x86_64
grub2-tools-minimal-2.02-0.76.el7.1.x86_64
e2fsprogs-libs-1.42.9-13.el7.x86_64
e2fsprogs-libs-1.42.9-16.el7.x86_64

We could remove some of them using 'package-cleanup --cleandupes' command and would get errors for others:

[root@xxxxxx ~]# package-cleanup --cleandupes
Loaded plugins: fastestmirror
Not removing bind-license-9.9.4-74.el7_6.1.noarch because it is required by 2 installed packages
Not removing libsss_idmap-1.16.2-13.el7_6.8.x86_64 because it is required by 1 installed package
Not removing dracut-033-554.el7.x86_64 because it is required by 2 installed packages
Not removing plymouth-core-libs-0.8.9-0.31.20140113.el7.x86_64 because it is required by 1 installed package
Not removing libsss_autofs-1.16.2-13.el7_6.8.x86_64 because it is required by 1 installed package
Not removing libss-1.42.9-13.el7.x86_64 because it is required by 1 installed package
Not removing grub2-pc-modules-2.02-0.76.el7.1.noarch because it is required by 1 installed package
Not removing libipa_hbac-1.16.2-13.el7_6.8.x86_64 because it is required by 1 installed package
Not removing sssd-client-1.16.2-13.el7_6.8.x86_64 because it is required by 1 installed package
Not removing selinux-policy-3.13.1-229.el7_6.12.noarch because it is required by 2 installed packages
Not removing grub2-common-2.02-0.76.el7.1.noarch because it is required by 2 installed packages
Not removing grub2-tools-2.02-0.76.el7.1.x86_64 because it is required by 2 installed packages
Not removing python-firewall-0.5.3-5.el7.noarch because it is required by 1 installed package
Not removing dhcp-common-4.2.5-68.el7_5.1.x86_64 because it is required by 1 installed package
Not removing openssl-libs-1.0.2k-16.el7_6.1.x86_64 because it is required by 1 installed package
Not removing firewalld-filesystem-0.5.3-5.el7.noarch because it is required by 1 installed package
Not removing libsss_sudo-1.16.2-13.el7_6.8.x86_64 because it is required by 1 installed package
Not removing nss-3.36.0-7.1.el7_6.x86_64 because it is required by 1 installed package
Not removing e2fsprogs-libs-1.42.9-13.el7.x86_64 because it is required by 1 installed package
Not removing openssh-7.4p1-16.el7.x86_64 because it is required by 2 installed packages
Not removing dhcp-libs-4.2.5-68.el7_5.1.x86_64 because it is required by 1 installed package
Not removing NetworkManager-libnm-1.12.0-10.el7_6.x86_64 because it is required by 2 installed packages
Not removing grub2-tools-minimal-2.02-0.76.el7.1.x86_64 because it is required by 2 installed packages
Not removing samba-common-4.8.3-4.el7.noarch because it is required by 6 installed packages
Not removing libcom_err-1.42.9-13.el7.x86_64 because it is required by 1 installed package
Not removing python-sssdconfig-1.16.2-13.el7_6.8.noarch because it is required by 1 installed package
......................

At the first time I tried to resolve these conflict one by one. For instance, the package dhcp-common-4.2.5-68.el7_5.1.x86_64 could not be removed and I tried to know what package blocked this action. I run 'yum remove dhcp-common-4.2.5-68.el7_5.1.x86_64' but input 'n' to interrupt such removal and found package dhclient was the reason.

In fact, if the update script run well, there should be just one version, the newer one, packages on the system. But it was terminated, so not all the old packages were updated and removed. For this reason, I updated the dependent package dhclient to latest version, then run 'package-cleanup --cleandupes' command again and it let me to remove the old dhcp-common-4.2.5-68.el7_5.1.x86_64.

Using the above way most conflicts could be resolved except the glibc-common package.

I run below commands to confirm the newer version was installed correctly, then removed the old one and updated the dependent glibc.i686.

[root@xxxxxx yum.repos.d]# rpm -V glibc-common-2.17-260.el7_6.6.x86_64
S.5......    /usr/bin/gencat
S.5......    /usr/bin/getconf
S.5......    /usr/bin/getent
S.5......    /usr/bin/iconv
S.5......    /usr/bin/locale
S.5......    /usr/bin/localedef
S.5......    /usr/bin/makedb
S.5......    /usr/bin/pldd
S.5......    /usr/bin/rpcgen
S.5......    /usr/bin/sprof
S.5......    /usr/sbin/build-locale-archive
S.5......    /usr/sbin/zdump
S.5......    /usr/sbin/zic
S.5......  d /usr/share/doc/glibc-common-2.17/ChangeLog.bz2
S.5......    /usr/share/i18n/charmaps/IBM273.gz
[root@xxxxxx yum.repos.d]# rpm -V glibc-common-2.17-292.el7.x86_64
[root@xxxxxx yum.repos.d]# rpm -e --justdb glibc-common-2.17-260.el7_6.6.x86_64
error: Failed dependencies:
	glibc-common = 2.17-260.el7_6.6 is needed by (installed) glibc-2.17-260.el7_6.6.i686
[root@xxxxxx yum.repos.d]# rpm -e --justdb --nodeps glibc-common-2.17-260.el7_6.6.x86_64
[root@xxxxxx yum.repos.d]# yum update glibc.i686

Finally I could run our update script successfully.

  • by Published on 19/10/2019 21:58:19
  • Repost please keep this link: https://www.dbcloudsvc.com/blogs/linux/multiple-version-issue-of-glibc-common-package-on-rhel-systems/
匿名

Comment

Anonymous Write

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

Decide