为什么“yum update”在几个月没有升级后会失败并有很多重复?

Kod*_*lie 4 yum rhel glibc

在几个月 (> 6) 没有软件升级后,我登录到运行的 EC2 实例:

Linux version 2.6.32-358.23.2.el6.x86_64 (mockbuild@x86-022.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Sat Sep 14 05:32:37 EDT 2013
Run Code Online (Sandbox Code Playgroud)

然后尝试执行通常的 yum-update:

# yum update
Run Code Online (Sandbox Code Playgroud)

好吧,失败了,错误如下:

--> Finished Dependency Resolution
Error: Package: coreutils-libs-8.4-19.el6_4.2.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: coreutils = 8.4-19.el6_4.2
           Removing: coreutils-8.4-19.el6_4.2.x86_64 (@rhui-us-east-1-rhel-server-releases)
               coreutils = 8.4-19.el6_4.2
           Updated By: coreutils-8.4-31.el6_5.1.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-31.el6_5.1
           Available: coreutils-8.4-9.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-9.el6
           Available: coreutils-8.4-13.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-13.el6
           Available: coreutils-8.4-16.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-16.el6
           Available: coreutils-8.4-19.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-19.el6
           Available: coreutils-8.4-19.el6_4.1.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-19.el6_4.1
           Available: coreutils-8.4-31.el6.x86_64 (rhui-REGION-rhel-server-releases)
               coreutils = 8.4-31.el6
Error: Package: abrt-addon-python-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: abrt = 2.0.8-16.el6_4.1
           Removing: abrt-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
               abrt = 2.0.8-16.el6_4.1
           Updated By: abrt-2.0.8-21.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-21.el6
           Available: abrt-1.1.13-4.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.13-4.el6
           Available: abrt-1.1.16-3.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.16-3.el6
           Available: abrt-2.0.4-14.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.4-14.el6
           Available: abrt-2.0.8-6.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6
           Available: abrt-2.0.8-6.el6_3.2.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6_3.2
           Available: abrt-2.0.8-15.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-15.el6
Error: Package: abrt-addon-ccpp-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: abrt = 2.0.8-16.el6_4.1
           Removing: abrt-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
               abrt = 2.0.8-16.el6_4.1
           Updated By: abrt-2.0.8-21.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-21.el6
           Available: abrt-1.1.13-4.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.13-4.el6
           Available: abrt-1.1.16-3.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.16-3.el6
           Available: abrt-2.0.4-14.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.4-14.el6
           Available: abrt-2.0.8-6.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6
           Available: abrt-2.0.8-6.el6_3.2.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6_3.2
           Available: abrt-2.0.8-15.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-15.el6
Error: Package: abrt-addon-kerneloops-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: abrt = 2.0.8-16.el6_4.1
           Removing: abrt-2.0.8-16.el6_4.1.x86_64 (@rhui-us-east-1-rhel-server-releases)
               abrt = 2.0.8-16.el6_4.1
           Updated By: abrt-2.0.8-21.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-21.el6
           Available: abrt-1.1.13-4.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.13-4.el6
           Available: abrt-1.1.16-3.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 1.1.16-3.el6
           Available: abrt-2.0.4-14.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.4-14.el6
           Available: abrt-2.0.8-6.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6
           Available: abrt-2.0.8-6.el6_3.2.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-6.el6_3.2
           Available: abrt-2.0.8-15.el6.x86_64 (rhui-REGION-rhel-server-releases)
               abrt = 2.0.8-15.el6
Error: Package: glibc-devel-2.12-1.107.el6_4.5.x86_64 (@rhui-us-east-1-rhel-server-releases)
           Requires: glibc-headers = 2.12-1.107.el6_4.5
           Removing: glibc-headers-2.12-1.107.el6_4.5.x86_64 (@rhui-us-east-1-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6_4.5
           Updated By: glibc-headers-2.12-1.132.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.132.el6
           Available: glibc-headers-2.12-1.7.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6
           Available: glibc-headers-2.12-1.7.el6_0.3.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6_0.3
           Available: glibc-headers-2.12-1.7.el6_0.4.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6_0.4
           Available: glibc-headers-2.12-1.7.el6_0.5.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.7.el6_0.5
           Available: glibc-headers-2.12-1.25.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.25.el6
           Available: glibc-headers-2.12-1.25.el6_1.3.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.25.el6_1.3
           Available: glibc-headers-2.12-1.47.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6
           Available: glibc-headers-2.12-1.47.el6_2.5.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6_2.5
           Available: glibc-headers-2.12-1.47.el6_2.9.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6_2.9
           Available: glibc-headers-2.12-1.47.el6_2.12.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.47.el6_2.12
           Available: glibc-headers-2.12-1.80.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6
           Available: glibc-headers-2.12-1.80.el6_3.3.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.3
           Available: glibc-headers-2.12-1.80.el6_3.4.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.4
           Available: glibc-headers-2.12-1.80.el6_3.5.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.5
           Available: glibc-headers-2.12-1.80.el6_3.6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.6
           Available: glibc-headers-2.12-1.80.el6_3.7.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.80.el6_3.7
           Available: glibc-headers-2.12-1.107.el6.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6
           Available: glibc-headers-2.12-1.107.el6_4.2.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6_4.2
           Available: glibc-headers-2.12-1.107.el6_4.4.x86_64 (rhui-REGION-rhel-server-releases)
               glibc-headers = 2.12-1.107.el6_4.4
 You could try using --skip-broken to work around the problem
** Found 143 pre-existing rpmdb problem(s), 'yum check' output follows:
Run Code Online (Sandbox Code Playgroud)

在阅读了几篇文章后,我尝试了几件事来纠正这个问题:

  • yum clean all,然后yum update
  • rpmdb --rebuilddb,然package-cleanup --dupes,然package-cleanup --cleandupes
  • yum-complete-transaction

在所有情况下,我最终都在同一个地方。一篇文章建议我可能有 glibc 的冲突包。无论如何,我无法说出发生了什么。我应该重新实例化我的 EC2,还是有人有解决方案?

谢谢!

Kod*_*lie 9

为我的 RHEL 6.4 (Fedora 12+) 环境解决 yum-updates 非常耗时,但最终成功。我想分享我做了什么,还有什么可以做得更好。

  1. 我确定了所有包重复项。估计package-clean --dupes也是一样的。另一个有用的命令是,它通过前缀或通用包名称识别重复的包。rpm -qa package-name
  2. 然后我删除了所有版本的coreutilsand coreutils-lib,或多或少遵循以下命令序列: (i) rpm -e --nodeps coreutils、 (ii) rpm -e --nodeps coreutils-lib、 (iii)updatedb和 (iv) yum clean all。注意:coreutils通常不建议删除,因为它会使许多其他命令无法运行。
  3. 然后我重新安装了最新版本的coreutilscoreutils-libyum install coreutils coreutils-lib
  4. 在这一点上,我仍然有大约 100 个重复的包。不幸的是,我的 EC2 正在运行一个微型实例,并且在几次运行中package-cleanup --cleandupes,我遇到了内存分配问题以及核心转储问题。我从而手动不得不移除每个重复包,使用前面提到的命令: rpm -e --nodeps package-name
  5. 删除重复的包后,我运行 (i) updatedb、 (ii)yum clean all和 (iii) yum update

在所有这一切之后,事情现在起作用了。

建议:如果有像“yum self-resolve”这样的命令会很有帮助。它将对要删除的包和要保留的包执行最佳猜测策略,以便使陈旧的环境保持最新。如果这样的命令已经存在,请告诉我。


Kam*_*zic 8

为我工作 sudo package-cleanup --cleandupes

  • 对于那些没有它的人,可以从 `yum-utils` 包中获得 `package-cleanup`。 (2认同)

Peq*_*que 0

我也是,我曾经无法更新我的系统(package-cleanup或者yum clean all也没有帮助)。两天后我就能够了。

如果您尚未将非官方存储库添加到您的发行版中,则可能是您的镜像的问题,或者只是存储库中的错误/不完整的软件包更新(可能很快就会修复)。