简体   繁体   English

RHEL 6.5 RPM 依赖项 - 为什么我会收到关于依赖已安装的 RPM 的错误?

[英]RHEL 6.5 RPM Dependencies - Why am I getting an error about a dependency on an RPM that is already installed?

I'm trying to upgrade from nscd-2.12-1.132.el6.x86_64 to nscd-2.12-1.149.el6.x86_64 because of a bug.由于错误,我正在尝试从 nscd-2.12-1.132.el6.x86_64 升级到 nscd-2.12-1.149.el6.x86_64。 There are several dependencies on glibc RPMs. glibc RPM 有几个依赖项。

Here are the glibc packages that are already installed:以下是已经安装的 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

Here are the RPMs that I'm trying to use to upgrade:以下是我尝试用于升级的 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

Here is the attempted upgrade using 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

A better view of what's happening is afforded by yum: 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

So what I'm getting out of this is that it won't upgrade nscd because there is a failed dependency on "glibc-common = 2.12-1.132.el6" which is already installed.所以我从中得到的是它不会升级 nscd 因为对已经安装的“glibc-common = 2.12-1.132.el6”的依赖失败。 Can somebody please explain why I'm getting this message and what it actually means?有人可以解释为什么我收到这条消息以及它的实际含义吗?

Also, if there is a better way of doing this without using RHN subscription or Satellite (no connectivity between this environment and the internet due to security).此外,如果不使用 RHN 订阅或卫星(由于安全性,此环境和 Internet 之间没有连接)有更好的方法来执行此操作。

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

Update: I took Ethan's advice and added the i686 glibc package.更新:我接受了 Ethan 的建议并添加了 i686 glibc 包。

Updated file list:更新的文件列表:

[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

If I try using rpm to update, it doesn't work.如果我尝试使用 rpm 进行更新,则不起作用。 How would I determine what package I need to download which contains libcap.so.2?我如何确定需要下载包含 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

Strangely enough, if I use yum it does work.奇怪的是,如果我使用 yum 它确实有效。 Why does this work but rpm does not?为什么这有效但 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

You could not perform update with rpm, because on install path was glibc-common-2.12-1.149.el6_6.4.i686 package.您无法使用 rpm 执行更新,因为安装路径是 glibc-common-2.12-1.149.el6_6.4.i686 包。 Only one glibc-common package is allowed.只允许使用一个 glibc-common 包。 Look at your yum output.看看你的 yum 输出。 Yum only updates x86_64 rpm. Yum 仅更新 x86_64 rpm。 And of course glibc.i686 was not present.当然 glibc.i686 不存在。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM