【问题标题】:RHEL 6.5 RPM Dependencies - Why am I getting an error about a dependency on an RPM that is already installed?RHEL 6.5 RPM 依赖项 - 为什么我收到有关已安装 RPM 依赖项的错误消息?
【发布时间】:2015-03-19 00:32:46
【问题描述】:

由于错误,我正在尝试从 nscd-2.12-1.132.el6.x86_64 升级到 nscd-2.12-1.149.el6.x86_64。 glibc RPM 有几个依赖项。

这里是已经安装的 glibc 包:

[tim@host]~/nscd% rpm -qa | grep glibc
glibc-common-2.12-1.132.el6.x86_64
glibc-2.12-1.132.el6.i686
glibc-2.12-1.132.el6.x86_64
glibc-utils-2.12-1.132.el6.x86_64

以下是我尝试用于升级的 RPM:

[tim@host]~/nscd% ll
total 35212
-rw-r----- 1 tim appeng   145372 Jan 16 21:04 gd-2.0.35-11.el6.x86_64.rpm
-rw-r----- 1 tim appeng  3993348 Jan 16 19:29 glibc-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r--r-- 1 tim appeng 14871492 Jan 17 01:14 glibc-common-2.12-1.149.el6_6.4.i686.rpm
-rw-r----- 1 tim appeng 14883600 Jan 16 19:31 glibc-common-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r----- 1 tim appeng  1006616 Jan 16 21:50 glibc-devel-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r----- 1 tim appeng   626024 Jan 16 21:48 glibc-headers-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r----- 1 tim appeng   170396 Jan 16 19:56 glibc-utils-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r----- 1 tim appeng    51912 Jan 16 21:13 libXpm-3.5.10-2.el6.x86_64.rpm
-rw-r----- 1 tim appeng   228352 Jan 16 19:57 nscd-2.12-1.149.el6_6.4.x86_64.rpm

这是尝试使用 rpm 进行的升级:

[tim@host]~/nscd% sudo rpm -Uvh *.rpm
[sudo] password for tim:
warning: gd-2.0.35-11.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
        libcap.so.2 is needed by glibc-common-2.12-1.149.el6_6.4.i686
        glibc-common = 2.12-1.132.el6 is needed by (installed) glibc-2.12-1.132.el6.i686

yum 可以更好地了解正在发生的事情:

[tim@host]~/nscd% sudo yum localinstall *.rpm
[sudo] password for tim:
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Local Package Process
Examining gd-2.0.35-11.el6.x86_64.rpm: gd-2.0.35-11.el6.x86_64
gd-2.0.35-11.el6.x86_64.rpm: does not update installed package.
Examining glibc-2.12-1.149.el6_6.4.x86_64.rpm: glibc-2.12-1.149.el6_6.4.x86_64
Marking glibc-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-2.12-1.132.el6.x86_64
Marking glibc-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-2.12-1.132.el6.i686
Examining glibc-common-2.12-1.149.el6_6.4.i686.rpm: glibc-common-2.12-1.149.el6_6.4.i686
Marking glibc-common-2.12-1.149.el6_6.4.i686.rpm as an update to glibc-common-2.12-1.132.el6.x86_64
Examining glibc-common-2.12-1.149.el6_6.4.x86_64.rpm: glibc-common-2.12-1.149.el6_6.4.x86_64
Marking glibc-common-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-common-2.12-1.132.el6.x86_64
Examining glibc-devel-2.12-1.149.el6_6.4.x86_64.rpm: glibc-devel-2.12-1.149.el6_6.4.x86_64
Marking glibc-devel-2.12-1.149.el6_6.4.x86_64.rpm to be installed
Examining glibc-headers-2.12-1.149.el6_6.4.x86_64.rpm: glibc-headers-2.12-1.149.el6_6.4.x86_64
Marking glibc-headers-2.12-1.149.el6_6.4.x86_64.rpm to be installed
Examining glibc-utils-2.12-1.149.el6_6.4.x86_64.rpm: glibc-utils-2.12-1.149.el6_6.4.x86_64
Marking glibc-utils-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-utils-2.12-1.132.el6.x86_64
Examining libXpm-3.5.10-2.el6.x86_64.rpm: libXpm-3.5.10-2.el6.x86_64
libXpm-3.5.10-2.el6.x86_64.rpm: does not update installed package.
Examining nscd-2.12-1.149.el6_6.4.x86_64.rpm: nscd-2.12-1.149.el6_6.4.x86_64
Marking nscd-2.12-1.149.el6_6.4.x86_64.rpm as an update to nscd-2.12-1.132.el6.x86_64
Resolving Dependencies
--> Running transaction check
---> Package glibc.x86_64 0:2.12-1.132.el6 will be updated
---> Package glibc.x86_64 0:2.12-1.149.el6_6.4 will be an update
---> Package glibc-common.x86_64 0:2.12-1.132.el6 will be updated
--> Processing Dependency: glibc-common = 2.12-1.132.el6 for package: glibc-2.12-1.132.el6.i686
---> Package glibc-common.x86_64 0:2.12-1.149.el6_6.4 will be an update
---> Package glibc-devel.x86_64 0:2.12-1.149.el6_6.4 will be installed
---> Package glibc-headers.x86_64 0:2.12-1.149.el6_6.4 will be installed
---> Package glibc-utils.x86_64 0:2.12-1.132.el6 will be updated
---> Package glibc-utils.x86_64 0:2.12-1.149.el6_6.4 will be an update
---> Package nscd.x86_64 0:2.12-1.132.el6 will be updated
---> Package nscd.x86_64 0:2.12-1.149.el6_6.4 will be an update
--> Finished Dependency Resolution
Error: Package: glibc-2.12-1.132.el6.i686 (@anaconda-RedHatEnterpriseLinux-201311111358.x86_64/6.5)
           Requires: glibc-common = 2.12-1.132.el6
           Removing: glibc-common-2.12-1.132.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201311111358.x86_64/6.5)
               glibc-common = 2.12-1.132.el6
           Updated By: glibc-common-2.12-1.149.el6_6.4.x86_64 (/glibc-common-2.12-1.149.el6_6.4.x86_64)
               glibc-common = 2.12-1.149.el6_6.4
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

所以我从中得到的是它不会升级 nscd,因为对已安装的“glibc-common = 2.12-1.132.el6”的依赖失败。有人可以解释一下为什么我会收到这条消息以及它的实际含义吗?

此外,如果有更好的方法可以在不使用 RHN 订阅或 Satellite 的情况下执行此操作(由于安全原因,此环境与 Internet 之间没有连接)。

=============================================

更新: 我采纳了 Ethan 的建议并添加了 i686 glibc 包。

更新的文件列表:

[tim@host]~/nscd% ll
total 38068
-rw-r----- 1 tim appeng   145372 Jan 16 21:04 gd-2.0.35-11.el6.x86_64.rpm
-rw-r--r-- 1 tim appeng  4553672 Jan 20 21:42 glibc-2.12-1.149.el6_6.4.i686.rpm
-rw-r----- 1 tim appeng  3993348 Jan 16 19:29 glibc-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r--r-- 1 tim appeng 14871492 Jan 17 01:14 glibc-common-2.12-1.149.el6_6.4.i686.rpm
-rw-r----- 1 tim appeng 14883600 Jan 16 19:31 glibc-common-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r----- 1 tim appeng   170396 Jan 16 19:56 glibc-utils-2.12-1.149.el6_6.4.x86_64.rpm
-rw-r----- 1 tim appeng    51912 Jan 16 21:13 libXpm-3.5.10-2.el6.x86_64.rpm
-rw-r----- 1 tim appeng   228352 Jan 16 19:57 nscd-2.12-1.149.el6_6.4.x86_64.rpm

如果我尝试使用 rpm 更新,它不起作用。我如何确定我需要下载哪个包,其中包含 libcap.so.2?

[tim@host]~/nscd% sudo rpm -Uvh *.rpm
[sudo] password for tim:
warning: gd-2.0.35-11.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
        libcap.so.2 is needed by glibc-common-2.12-1.149.el6_6.4.i686

奇怪的是,如果我使用 yum,它确实有效。为什么这行得通,而 rpm 却不行?

[tim@host]~/nscd% sudo yum localinstall *.rpm
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Local Package Process
Examining gd-2.0.35-11.el6.x86_64.rpm: gd-2.0.35-11.el6.x86_64
gd-2.0.35-11.el6.x86_64.rpm: does not update installed package.
Examining glibc-2.12-1.149.el6_6.4.i686.rpm: glibc-2.12-1.149.el6_6.4.i686
Marking glibc-2.12-1.149.el6_6.4.i686.rpm as an update to glibc-2.12-1.132.el6.x86_64
rhel6                                                                                     | 3.9 kB     00:00
rhel6-alt                                                                                 | 3.9 kB     00:00
Marking glibc-2.12-1.149.el6_6.4.i686.rpm as an update to glibc-2.12-1.132.el6.i686
Examining glibc-2.12-1.149.el6_6.4.x86_64.rpm: glibc-2.12-1.149.el6_6.4.x86_64
Marking glibc-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-2.12-1.132.el6.x86_64
Marking glibc-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-2.12-1.132.el6.i686
Examining glibc-common-2.12-1.149.el6_6.4.i686.rpm: glibc-common-2.12-1.149.el6_6.4.i686
Marking glibc-common-2.12-1.149.el6_6.4.i686.rpm as an update to glibc-common-2.12-1.132.el6.x86_64
Examining glibc-common-2.12-1.149.el6_6.4.x86_64.rpm: glibc-common-2.12-1.149.el6_6.4.x86_64
Marking glibc-common-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-common-2.12-1.132.el6.x86_64
Examining glibc-utils-2.12-1.149.el6_6.4.x86_64.rpm: glibc-utils-2.12-1.149.el6_6.4.x86_64
Marking glibc-utils-2.12-1.149.el6_6.4.x86_64.rpm as an update to glibc-utils-2.12-1.132.el6.x86_64
Examining libXpm-3.5.10-2.el6.x86_64.rpm: libXpm-3.5.10-2.el6.x86_64
libXpm-3.5.10-2.el6.x86_64.rpm: does not update installed package.
Examining nscd-2.12-1.149.el6_6.4.x86_64.rpm: nscd-2.12-1.149.el6_6.4.x86_64
Marking nscd-2.12-1.149.el6_6.4.x86_64.rpm as an update to nscd-2.12-1.132.el6.x86_64
Resolving Dependencies
--> Running transaction check
---> Package glibc.i686 0:2.12-1.132.el6 will be updated
---> Package glibc.x86_64 0:2.12-1.132.el6 will be updated
---> Package glibc.i686 0:2.12-1.149.el6_6.4 will be an update
---> Package glibc.x86_64 0:2.12-1.149.el6_6.4 will be an update
---> Package glibc-common.x86_64 0:2.12-1.132.el6 will be updated
---> Package glibc-common.x86_64 0:2.12-1.149.el6_6.4 will be an update
---> Package glibc-utils.x86_64 0:2.12-1.132.el6 will be updated
---> Package glibc-utils.x86_64 0:2.12-1.149.el6_6.4 will be an update
---> Package nscd.x86_64 0:2.12-1.132.el6 will be updated
---> Package nscd.x86_64 0:2.12-1.149.el6_6.4 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================
 Package            Arch         Version                     Repository                                     Size
=================================================================================================================
Updating:
 glibc              i686         2.12-1.149.el6_6.4          /glibc-2.12-1.149.el6_6.4.i686                 13 M
 glibc              x86_64       2.12-1.149.el6_6.4          /glibc-2.12-1.149.el6_6.4.x86_64               12 M
 glibc-common       x86_64       2.12-1.149.el6_6.4          /glibc-common-2.12-1.149.el6_6.4.x86_64       107 M
 glibc-utils        x86_64       2.12-1.149.el6_6.4          /glibc-utils-2.12-1.149.el6_6.4.x86_64         45 k
 nscd               x86_64       2.12-1.149.el6_6.4          /nscd-2.12-1.149.el6_6.4.x86_64               176 k

Transaction Summary
=================================================================================================================
Upgrade       5 Package(s)

Total size: 133 M
Is this ok [y/N]: n
Exiting on user Command

【问题讨论】:

  • 你试过...用rpm文件nscd-2.12-1.149.el6.x86_64
  • 您错过了套件中的 i686 glibc 更新包。您正在尝试更新 multilib glibc 包的一半。
  • @MiyaG 是的,nscd-2.12-1.149.el6.x86_64 包已经在我正在运行“rpm -Uvh *.rpm”命令的 nscd 目录中。
  • @EtanReisner,谢谢,我会试试的。
  • @EtanReisner 可以看看添加 i686 glibc 包的结果吗?我用结果更新了我的问题正文。

标签: linux rpm


【解决方案1】:

您无法使用 rpm 执行更新,因为安装路径是 glibc-common-2.12-1.149.el6_6.4.i686 包。只允许使用一个 glibc-common 包。 看看你的 yum 输出。 Yum 只更新 x86_64 rpm。当然 glibc.i686 也不存在。

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 2021-06-30
    • 2015-10-14
    • 2020-01-03
    • 2021-05-01
    • 1970-01-01
    • 2014-12-25
    • 2012-01-26
    • 1970-01-01
    相关资源
    最近更新 更多