CentOS yum -- 预先存在的 rpmdb 问题

Dav*_*lia 7 linux yum git dependencies kernel

我正在尝试在开发人员框中安装 git,我得到以下信息:

You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
kernel-2.6.32-431.17.1.el6.x86_64 has installed conflicts bfa-firmware < ('0', '3.2.21.1',     '2'): bfa-firmware-3.0.3.1-1.el6.noarch
kernel-firmware-2.6.32-431.17.1.el6.noarch is a duplicate with kernel-firmware-2.6.32-358.23.2.el6.noarch
kernel-headers-2.6.32-431.17.1.el6.x86_64 is a duplicate with kernel-headers-2.6.32-358.23.2.el6.x86_64
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我对 CentOS/RHEL 不太熟悉

谢谢

Ram*_*lat 8

根本原因

up2date 或 yum 更新过程中断导致安装同一包的多个版本。

解析度

  1. 如果系统是 Red Hat Enterprise Linux 5 或更高版本,可以使用 package-cleanup 命令:

$ package-cleanup --dupes $ package-cleanup --cleandupes

--dupes 命令将列出机器上安装的重复包,而 --cleandupes 开关将删除旧版本。package-cleanup 命令由 yum-utils 包提供。

  1. 如果 package-cleanup 没有帮助或者系统是 Red Hat Enterprise Linux 4,请使用 rpm 手动删除包:

$ rpm -e --justdb <package-name>-<old-version>

'--justdb' 开关用于确保包删除不会从文件系统中删除其文件,而只会从 rpm 数据库中删除它。

某些重复项可能不会删除,因为已安装的软件包需要它们。您可以尝试使用 --cleandupes 和 --removenewestdupes,或使用 --dupes 查看它们并手动删除。


小智 0

尝试执行以下命令

yum clean all
rpm --rebuilddb
yum update
yum clean all
yum reinstall glibc glibc-common libgcc
yum upgrade
yum install yum-utils
package-cleanup --problems
package-cleanup --dupes
Run Code Online (Sandbox Code Playgroud)

  • 不像写的那样对我有用,但那里有一些有用的信息。最后 2 个步骤输出损坏的列表。最终解决一些问题的方法是继续降级,然后升级,禁用所有额外的存储库,一切都会损坏,然后在每个降级/升级步骤之间重建数据库(您的步骤#2)。涉及很多尝试和错误。 (2认同)