Yum 说安装了一个包,但没有安装,它阻止了其他包的安装

Ala*_* C. 8 yum centos glibc

我正在尝试安装新软件包 ( 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_64glibc-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)

我该如何解决这个问题?

Joh*_*ohn 6

RPM 数据库很混乱。我的建议,之前遇到过这个问题,它rpm -e --justdb安装了较新的“重复”包,然后yum upgrade是包,然后rpm --rebuilddb只是因为我有点偏执。完成前两个步骤后,假设您的存储库正确同步,您应该能够安装较新的软件包。你可能想yum clean all后的权利rpm -e --justdb,以确保那- ,使织补确保您指定--justdb或者您也可以做各种坏事到您的系统。


Ala*_* C. 6

使用 RPM 数据库并没有产生任何特别好的结果。

我最终注意到有些glibc包裹i686x86_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)

像魅力一样工作。