我正在尝试通过yum安装libcap-devel库,并且看来我公司的yum回购中只有libcap-devel-2.22-8.el7.x86_64
,需要glibc-common-2.17-105.el7
。
不幸的是,我的VM上安装的glibc-common是glibc-common-2.17-222.el7.x86_64
,并且安装失败。
我想弄清楚如何确定哪个版本的libcap-devel
与glibc-common-2.17-222.el7.x86_64
兼容,然后要求系统管理员将该版本libcap-devel
添加到yum仓库(我无权这样做),以便我可以成功安装它。我该怎么做?
这是yum install libcap-devel
Resolving Dependencies --> Running transaction check ---> Package libcap-devel.x86_64 0:2.22-8.el7 will be installed --> Processing Dependency: libcap = 2.22-8.el7 for package: libcap-devel-2.22-8.el7.x86_64 --> Running transaction check ---> Package libcap.i686 0:2.22-8.el7 will be installed --> Processing Dependency: libattr.so.1 for package: libcap-2.22-8.el7.i686 --> Processing Dependency: libattr.so.1(ATTR_1.0) for package: libcap-2.22-8.el7.i686 --> Processing Dependency: libc.so.6(GLIBC_2.8) for package: libcap-2.22-8.el7.i686 --> Running transaction check ---> Package glibc.i686 0:2.17-105.el7 will be installed --> Processing Dependency: glibc-common = 2.17-105.el7 for package: glibc-2.17-105.el7.i686 --> Processing Dependency: libfreebl3.so for package: glibc-2.17-105.el7.i686 --> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-105.el7.i686 ---> Package libattr.i686 0:2.4.46-12.el7 will be installed --> Running transaction check ---> Package glibc.i686 0:2.17-105.el7 will be installed --> Processing Dependency: glibc-common = 2.17-105.el7 for package: glibc-2.17-105.el7.i686 ---> Package nss-softokn-freebl.i686 0:3.16.2.3-13.el7_1 will be installed --> Finished Dependency Resolution You could try using --skip-broken to work around the problem Error: Package: glibc-2.17-105.el7.i686 (redhat_base) Requires: glibc-common = 2.17-105.el7 Installed: glibc-common-2.17-222.el7.x86_64 (@anaconda/7.5) glibc-common = 2.17-222.el7 Available: glibc-common-2.17-105.el7.x86_64 (redhat_base) glibc-common = 2.17-105.el7
以下是yum --showduplicates list libcap-devel
的输出,它显示yum存储库只有一个可用版本:
========================== N/S matched: libcap-devel =========================== libcap-devel-2.22-8.el7.i686 : Development files for libcap libcap-devel-2.22-8.el7.x86_64 : Development files for libcap
yum --showduplicates list libcap
的输出显示:
Installed Packages libcap.x86_64 2.22-9.el7 @anaconda/7.5 Available Packages libcap.i686 2.22-8.el7 redhat_base libcap.x86_64 2.22-8.el7 redhat_base
yum install -y libcap-2.22-8.el7.x86_64
的输出显示:
与软件包libcap-2.22-8.el7.x86_64匹配的软件包已安装。正在检查更新。 没事
此后,运行yum install -y libcap-devel-2.22-8.el7.x86_64
仍尝试下载32位版本:
... --> Processing Dependency: libcap = 2.22-8.el7 for package: libcap-devel-2.22-8.el7.x86_64 --> Running transaction check ---> Package libcap.i686 0:2.22-8.el7 will be installed ...
yum --showduplicates list glibc
的输出显示glibc.i686 0:2.17-222.el7不可用,只有2.17-105.e17。
Installed Packages glibc.x86_64 2.17-222.el7 @anaconda/7.5 Available Packages glibc.i686 2.17-105.el7 redhat_base glibc.x86_64 2.17-105.el7 redhat_base
任何这种变化都会失败:
yum downgrade -y glibc-2.17-105.el7
yum downgrade -y glibc-2.17-105.el7 glibc-common-2.17-105.el7
yum downgrade -y glibc-2.17-105.el7 glibc-common-2.17-105.el7 glibc-devel-2.17-105.el7
yum downgrade -y glibc-headers-2.17-105.el7 glibc-2.17-105.el7 glibc-common-2.17-105.el7 glibc-devel-2.17-105.el7
例如,第一个命令抱怨glibc-common和glibc-devel,将它们添加到抱怨glibc标头的结果中,而第四行实际上是段错误。
答案 0 :(得分:0)
欢迎来到依赖库/ rpm的丛林:)
读取需要花费一些时间和耐心,然后需要一些技巧来读取yum
输出。有时,您甚至必须运行一些中间命令来获得确切的答案,但让我们看看我们已经在此处看到的内容:
处理依赖性:软件包:libcap-devel-2.22-8.el7.x86_64的libcap = 2.22-8.el7
您尝试安装libcap-devel
。 yum
说,他还需要使用完全相同的版本号安装libcap
。到目前为止没有任何惊喜。
将安装软件包libcap.i686 0:2.22-8.el7
这可能已经是您不想要的东西。您似乎在64位系统上;您真的要安装该库的i686版本吗?事实是libcap-devel
并不表示它需要x86_64版本;它需要两者中的任何一个。最好yum
将安装x86_64版本,但是如果不可能,则可以使用i686版本。
在这种情况下,建议您先尝试安装libcap-2.22-8.el7.x86_64
,然后看看为什么yum
不会安装该版本。
但是无论如何,让我们继续阅读,这还将为您提供有关如何解决x86_64软件包此问题的信息。
->处理依赖性:软件包:libcap-2.22-8.el7.i686的libc.so.6(GLIBC_2.8)
->运行事务检查
--->将安装软件包glibc.i686 0:2.17-105.el7
所以这里yum
选择安装glibc.i686 0:2.17-105.el7
,可能是为了满足libc.so.6(GLIBC_2.8)
现在这是发生冲突的地方:glibc.i686 0:2.17-105.el7
要求glibc-common
具有完全相同的版本号,但是您的计算机上已经有glibc-common
的较新版本。
这里有多种解决方案,按照我的偏好列出了不完整的列表:
libcap-2.22-8.el7.x86_64
。glibc.i686 0:2.17-222.el7
存储库中有yum
可用(或已安装在系统上)glibc-common
(可能还有glibc
x86_64版本)降级到版本0:2.17-105.el7