44

当我尝试yum update在 CentOS 6.3 机器上运行时,我收到错误,并说要运行yum check. 的输出yum check是:

➜  ~  yum check
Loaded plugins: fastestmirror
glibc-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-2.12-1.107.el6_4.4.x86_64
glibc-common-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-common-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-devel-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 has missing requires of glibc-headers = ('0', '2.12', '1.107.el6_4.5')
iputils-20071127-17.el6_4.2.x86_64 is a duplicate with iputils-20071127-17.el6_4.x86_64
nspr-4.9.5-2.el6_4.x86_64 is a duplicate with nspr-4.9.2-1.el6.x86_64
nss-3.14.3-4.el6_4.x86_64 is a duplicate with nss-3.14.0.0-12.el6.x86_64
nss-softokn-3.14.3-3.el6_4.x86_64 is a duplicate with nss-softokn-3.12.9-11.el6.x86_64
nss-util-3.14.3-3.el6_4.x86_64 is a duplicate with nss-util-3.14.0.0-2.el6.x86_64
tzdata-2013g-1.el6.noarch is a duplicate with tzdata-2013c-2.el6.noarch
2:xinetd-2.3.14-39.el6_4.x86_64 is a duplicate with 2:xinetd-2.3.14-38.el6.x86_64
Error: check all

知道如何修复这些软件包吗?我试过yum reinstall xinetd tzdata nss-util nss-softokn nss nspr iputils glibc glibc-common glibc-devel但得到:

错误:发现 Multilib 版本问题。这通常意味着根本原因是其他原因,multilib 版本检查只是指出存在问题。

4

9 回答 9

55

对我来说,看起来您在升级软件包的过程中重新启动了计算机(或崩溃了)。因此,安装了新软件包,但未删除旧软件包。

首先看看你是否有任何不完整的交易:yum-complete-transaction

如果这没有帮助,请查看 yum-utils 包中的包清理工具。

package-cleanup --dupes 列出重复的包

package-cleanup --cleandupes 删除重复的包

但要小心该命令并在删除重复项之前创建备份。

于 2013-12-04T08:12:43.820 回答
47

这就是我用 471 个骗子修复一台 CentOS 7 服务器的方法。

首先我必须安装 yum utils:

yum install yum-utils

没有运气尝试过 yum-complete-transaction 和其他东西,我放弃了交易:

yum-complete-transaction --cleanup-only

然后我得到了一个重复包的排序列表,这样我就可以识别旧版本,以便稍后删除过滤偶数行和奇数行:

package-cleanup --dupes | sort -u > dupes.out

然后我通过这种方式从这个排序的文件中得到了一个卸载列表:

cat dupes.out | grep -v 'Loaded plugins:' | sort -u | awk 'NR % 2 == 1' > uninstall.in

然后我从 rpm 数据库中删除了旧版本:

for f in `cat uninstall.in`; do rpm -e --nodeps -f --justdb $f; done

最后我可以继续进行常规系统升级:

yum upgrade

需要注意的一些事项:

  • 在这种情况下,我仔细查看了“ package-cleanup --dupes ”输出,以确保如何生成卸载列表。
  • 我尝试了一种“重新安装较新”的方法来反转列表(awk 'NR % 2 == 0'),但是在该版本中许多软件包不再可用(服务器以这种方式保留了一年)。
  • 我曾考虑从 rpmdb 中删除较新的软件包,因此稍后升级应该重新安装所有内容,但是在检查文件系统安装的文件后,我很清楚新版本已经到位,只有较旧的 rpm 条目仍在 rpmdb 中。也许你的情况不同。
于 2018-10-25T03:11:24.503 回答
9

我能够使用以下方法删除所有重复项yum shell

  1. 我首先命令它使用删除所有包remove foo-package-*
  2. 然后通过指定确切的版本命令它安装以前的版本install foo-package-3.14.1-5.i386 foo-package-3.14.1-5.x86_64
  3. 通过提交事务run

之后,重复项消失了,我可以毫无问题地将系统更新到当前软件包,并且不会引入任何新的重复项。

nss这甚至适用于像or之类的系统包yum

于 2014-02-10T17:15:05.083 回答
5

尝试运行:

yum reinstall [package-new.version]

这意味着,如果你得到的输出yum check是:

# yum check
Loaded plugins: fastestmirror
nss-3.14.3-4.el6_4.x86_64 is a duplicate with nss-3.14.0.0-12.el6.x86_64

重新安装:

yum reinstall nss-3.14.3-4.el6_4.x86_64
于 2018-05-23T07:51:45.330 回答
1

SSH 断开连接中断了次要升级。在尝试让其他修复工作时手持几个包后,我最终修复了其余的: sudo yum reinstall --skip-broken $(/usr/bin/package-cleanup --dupes -q |sort)

于 2020-06-10T01:39:16.907 回答
1

首先安装 yum utils 然后运行清理以删除旧的重复包

yum install yum-utils &&
package-cleanup –-cleandupes -y

提示:有时你需要运行package-cleanup –-cleandupes几次

于 2019-09-26T06:48:13.113 回答
0

对我有用的是:

1)获取重复包列表:package-cleanup --dupes
2)手动删除旧重复项:rpm -e --justdb --nodeps {old-version-duplicated-package}
3) yum update

于 2020-05-03T14:01:29.450 回答
0

就我而言,以上没有任何效果。

因此,在获得重复列表后,我将其复制到文本编辑器...

我做到了

  yum upgrade {package name}

当我编辑整个列表时,我不断地这样做......

示例:yum upgrade sudo nano 来到 mariadb 等...

于 2019-10-29T18:02:38.400 回答
0

几个月前,我在升级我的 Fedora 后也遇​​到了这个问题。

我还尝试了该package-cleanup实用程序,它开始删除所需的库,使我的工作站无法使用。幸运的是,我可以重新安装 Fedora,而不会删除我的主分区。

昨天发生了同样的问题,我修复了它,删除了旧版本的副本。

例如:我得到了这些重复项:

  • oxygen-icon-theme-4.8.3-1.fc16.noarchoxygen-icon-theme-4.8.2-1.fc16.noarch
  • sane-backends-libs-1.0.22-10.fc16.i686sane-backends-libs-1.0.22-8.fc16.i686

我所做的是我使用了yum remove sane-backends-libs-1.0.22-8.fc16.i686和之后的yum update.

现在一切正常。


来自http://forums.fedoraforum.org/showthread.php?t=268328

于 2016-12-15T08:04:58.293 回答