【问题标题】:Duplicate Package - update / upgrade - Centos重复包 - 更新/升级 - Centos
【发布时间】:2013-10-25 10:42:23
【问题描述】:

当我尝试在 CentOS 6.3 机器上运行 yum update 时,我遇到了错误,并说要运行 yum checkyum 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,但得到了:

错误:发现多库版本问题。这通常意味着 根 原因是别的,多库版本检查只是 指出有问题。

【问题讨论】:

    标签: centos duplicates centos7 yum


    【解决方案1】:

    尝试运行:

    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
    

    【讨论】:

    • 在我尝试过的所有解决方案中,这是唯一适用于最后一个被卡住的包的解决方案。谢谢!
    • 我也一样!我尝试了许多解决方案。其中一些很危险,并试图删除所有依赖包(包括 yum)。这个看起来很安全。它有效!
    【解决方案2】:

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

    【讨论】:

    • 效果很好,无需人工干预,谢谢!
    【解决方案3】:

    对我有用的是:

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

    【讨论】:

      【解决方案4】:

      在我的情况下,上面没有任何工作。

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

      我做到了

        yum upgrade {package name}
      

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

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

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

          【解决方案6】:

          几个月前,我在升级我的 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

          【讨论】:

            【解决方案7】:

            这就是我修复一台 CentOS 7 服务器的方法,其中有 471 个重复项。

            首先我必须安装 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 中。也许你的情况不同。

            【讨论】:

            • 非常感谢兄弟!这修复了我在工作时对家庭文件服务器进行的拙劣升级。我手机的网络连接突然中断,就在交易过程中,导致该死的近 1200 人受骗。一个 --cleandupes 让它低于 100 左右,但这得到了剩下的。
            • 为了先用旧版本排序,你应该使用sort -V,而不是sort -u
            • awk 'NR % 2 == 1' 只是删除每隔一行,如果每个包恰好有一个副本,它只会删除重复的文件。识别旧重复文件的更安全方法:for p in $(package-cleanup --dupes | grep -v ' ' | sort -rV); do echo "$(rpm -q --qf "%{NAME}\n" $p) $p"; done | awk 'seen[$1]++' | awk '{print $2}' > remove.list
            • 非常感谢 - 非常有帮助的起点,因为更新变得非常糟糕。我带着你的第三个想法去了,并从 rpmdb 中删除了较新的软件包 - 如果我强制重新安装,我更有信心事情会处于良好状态。此外,对于“git”相关的软件包,我实际上也遇到了冲突(在 git216 和 git2u 之间)而不是纯粹的重复,但同样的方法(从 rpmdb 中删除新的并重新安装)也解决了这个问题。
            • 是的,这实际上修复了我的 CentOS 7 服务器,该服务器在自动更新一定搞砸后卡住了几个星期。
            【解决方案8】:

            我能够使用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 提交事务

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

            这甚至适用于像 nssyum 这样的系统包。

            【讨论】:

            • 尝试:package-cleanup --cleandupes
            • @user1403360:这不起作用,它中止了,因为它想删除 yum
            • 使用yum shell 重新安装coreutils,然后yum update 再次工作。谢谢!
            【解决方案9】:

            对我来说,您在升级软件包的过程中似乎重新启动了计算机(或崩溃了)。所以安装了新包,但没有删除旧包。

            首先查看您是否有任何未完成的交易:yum-complete-transaction

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

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

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

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

            【讨论】:

            • yum-complete-transaction 在我的情况下也修复了它。我也必须yum install yum-utils 才能提供此功能。我的机器在安装过程中没有重新启动,但我在安装过程中丢失了 SSH 连接,这似乎停止了安装......
            • package-cleanup --cleandupes 破坏了我的系统,因为它删除了已删除副本拥有的文件,尽管这些文件也属于第一个副本/副本。我有 glibc 作为副本,运行此命令后,我无法运行其他任何东西。就我而言,rpm -e --justdb [duplicated packages] 工作正常。
            • package-cleanup --cleandupes 也破坏了我的系统 :(
            • 在我的情况下,package-cleanup 不会运行,因为包冲突(由半运行 yum 事务引起)。删除冲突包的较新版本解决了冲突,因此 package-cleanup --dupes 工作得很好。
            • package-cleanup --cleandupes 对我不起作用,但我能够解决以下问题: for i in $(package-cleanup --dupes);做 rpm -e --justdb $i --nodeps;完成
            猜你喜欢
            • 2021-11-07
            • 2017-11-29
            • 2023-03-12
            • 1970-01-01
            • 2019-03-20
            • 2020-04-24
            • 2018-04-14
            • 2021-04-16
            • 2017-03-30
            相关资源
            最近更新 更多