我正在尝试安装新软件包 ( 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
请注意,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
那行不通。它认为它已经安装了。
所以我尝试重新安装它。
~ $> 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
我该如何解决这个问题?
答案1
RPM DB 很混乱。我的建议是,以前遇到过这种情况,先rpm -e --justdb
安装较新的“重复”软件包,然后再安装yum upgrade
该软件包,然后rpm --rebuilddb
只是因为我有点偏执。完成前两个步骤后,假设您的存储库正确同步,您应该能够安装较新的软件包。您可能想yum clean all
在之后rpm -e --justdb
确定这一点 - 并确保您指定了--justdb
,否则您可能会对您的系统做各种坏事。
答案2
弄乱 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
我不喜欢这样,我想百胜也不喜欢这样。
跑步
yum downgrade glibc glibc-headers glibc-common glibc-devel
将所有包引入同一架构 ( x86_64
)。然后,
yum install glibc-static
就像魅力一样。
答案3
我能够通过手动将 rpm 下载到系统(注意,您需要拥有所有依赖的 rpm)并将它们保存到文件夹并运行来解决类似的问题:
yum localupdate /文件夹位置/*.rpm
我的问题围绕着从我指向的存储库获取 RPM 时发现的不一致问题。虽然症状与您所看到的完全一样,所以这也可能对您有用。