我正在尝试安装新软件包 ( glibc-static),但出现以下错误
---> Package nss-softokn-freebl.i686 0:3.14.3-18.el6_6 will be installed
--> Finished Dependency Resolution
Error: Package: glibc-2.12-1.149.el6.i686 (CentOS-OS)
Requires: glibc-common = 2.12-1.149.el6
Installed: glibc-common-2.12-1.149.el6_6.5.x86_64 (@updates)
glibc-common = 2.12-1.149.el6_6.5
Available: glibc-common-2.12-1.149.el6.x86_64 (CentOS-OS)
glibc-common = 2.12-1.149.el6
Error: Package: glibc-devel-2.12-1.149.el6.i686 (CentOS-OS)
Requires: glibc-headers = 2.12-1.149.el6
Installed: glibc-headers-2.12-1.149.el6_6.5.x86_64 (@updates)
glibc-headers = 2.12-1.149.el6_6.5
Available: glibc-headers-2.12-1.149.el6.x86_64 (CentOS-OS)
glibc-headers = 2.12-1.149.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Run Code Online (Sandbox Code Playgroud)
注意glibc-common-2.12-1.149.el6_6.5.x86_64和glibc-common-2.12-1.149.el6.x86_64不匹配。但glibc-common-2.12-1.149.el6_6.5.x86_64被列为可用。我认为 yum 会很乐意安装它。不幸的是,yum 没有安装它。
所以我试着自己做。
~ $> sudo yum install glibc-common-2.12-1.149.el6
Loaded plugins: fastestmirror, presto
Setting up Install Process
Loading mirror speeds from cached hostfile
* epel: mirror.us.leaseweb.net
Package matching glibc-common-2.12-1.149.el6.x86_64 already installed. Checking for update.
Nothing to do
Run Code Online (Sandbox Code Playgroud)
那没有用。它认为它已经安装。
所以我尝试重新安装它。
~ $> sudo yum reinstall glibc-common-2.12-1.149.el6
Loaded plugins: fastestmirror, presto
Setting up Reinstall Process
Loading mirror speeds from cached hostfile
No Match for argument: glibc-common-2.12-1.149.el6
Package(s) glibc-common-2.12-1.149.el6 available, but not installed.
Nothing to do
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
RPM 数据库很混乱。我的建议,之前遇到过这个问题,它rpm -e --justdb安装了较新的“重复”包,然后yum upgrade是包,然后rpm --rebuilddb只是因为我有点偏执。完成前两个步骤后,假设您的存储库正确同步,您应该能够安装较新的软件包。你可能想yum clean all后的权利rpm -e --justdb,以确保那- ,使织补确保您指定--justdb或者您也可以做各种坏事到您的系统。
使用 RPM 数据库并没有产生任何特别好的结果。
我最终注意到有些glibc包裹i686是x86_64. 例如:
Package: glibc-2.12-1.149.el6.i686 (CentOS-OS)
Requires: glibc-common = 2.12-1.149.el6
Installed: glibc-common-2.12-1.149.el6_6.5.x86_64
Run Code Online (Sandbox Code Playgroud)
我不喜欢那样,我预计百胜也不喜欢那样。
跑步
yum downgrade glibc glibc-headers glibc-common glibc-devel
Run Code Online (Sandbox Code Playgroud)
将所有包带到相同的体系结构 ( x86_64)。然后,
yum install glibc-static
Run Code Online (Sandbox Code Playgroud)
像魅力一样工作。