Skip to content

20170923_how to fix glibc yum dependencies at centos 7.html

CI edited this page Jun 5, 2018 · 1 revision

title: "如何在 CentOS 7 解決 glibc 的 yum 套件相依性問題" date: 2017-09-23 type: blog author: 凍仁翔 link: http://note.drx.tw/2017/09/how-to-fix-glibc-yum-dependencies-at-centos-7.html layout: post comments: true

這週凍仁接到一個需要幫 CentOS 7 部署 OpenLDAP client 的任務。過程中,總是有一兩台 server 會遇到 glibc 相依性問題,並為此煩惱。如果是所有的 server 都有同樣的問題還好解決,最麻煩的就是遇上這種時好時壞的情形。

[ jonny@centos7 ]
$ sudo yum install nss-pam-ldapd [Enter]
...
1 --> Finished Dependency Resolution
2 Error: Package: glibc-2.17-157.el7_3.1.i686 (internel-upadte)
3 Requires: glibc-common = 2.17-157.el7_3.1
4 Installed: glibc-common-2.17-157.el7_3.2.x86_64 (@updates)
5 glibc-common = 2.17-157.el7_3.2
5 Available: glibc-common-2.17-105.el7.x86_64 (internel-base)
6 glibc-common = 2.17-105.el7
7 Available: glibc-common-2.17-106.el7_2.1.x86_64 (internel-upadte)
8 glibc-common = 2.17-106.el7_2.1
9 Available: glibc-common-2.17-106.el7_2.4.x86_64 (internel-upadte)
10 glibc-common = 2.17-106.el7_2.4
11 Available: glibc-common-2.17-106.el7_2.6.x86_64 (internel-upadte)
12 glibc-common = 2.17-106.el7_2.6
13 Available: glibc-common-2.17-106.el7_2.8.x86_64 (internel-upadte)
14 glibc-common = 2.17-106.el7_2.8
15 Available: glibc-common-2.17-157.el7.x86_64 (internel-base)
16 glibc-common = 2.17-157.el7
17 Available: glibc-common-2.17-157.el7_3.1.x86_64 (internel-upadte)
18 glibc-common = 2.17-157.el7_3.1
19 You could try using --skip-broken to work around the problem
20 You could try running: rpm -Va --nofiles --nodigest
▲ 安裝 nss-pam-ldapd 出現了 glibc 的套件相依性問題。

上網查了一下資料,發現前人在 2016 年就遇上同樣的問題,其解法也很簡單,只需先降級 glibc 即可。

1. 降級 glibc 的相關套件。
[ jonny@centos7 ]
$ sudo yum downgrade glibc glibc-common glibc-devel glibc-headers [Enter]

2. 接著重新安裝 nss-pam-ldapd 就不會遇到相依性問題了。
$ sudo yum install nss-pam-ldapd [Enter]

現在回過頭來看,其實在錯誤訊息的第 3 行的 glibc-common = 2.17-157.el7_3.1 就提到需安裝 2.17-157.el7_3.1 版本的 glibc-common,可出問題的 server 上雖已裝了 2.17-157.el7_3.2 但在降級的過程中失敗。

這問題會發生在已安裝某些服務後,才改用內部 Yum mirror repo 的 server 上。而這個結論是在嘗試升級已降級 glibc切換內部 Yum mirror repo 的 server,卻無任何變更後得知。

題外話,現在的凍仁很幸運地得到前人分享的知識,並擁有 AnsibleVagrant 兩大利器,才能在不到一週內解決環境不一的問題。甚至還在最後發現 Ansible Playbooks 漏掉了要安裝 authconfig 這個必要套件呢!

相關連結:
2.2. Using authconfig | redhat customer portal

資料來源:
[SOLVED] Yum Dependencies resolution fail (glibc-common) | LinuxQuestions.org
Clone this wiki locally