是否可以安裝某個軟體包,但 yum 或 rpm 指令看不到該軟體包?

是否可以安裝某個軟體包,但 yum 或 rpm 指令看不到該軟體包?

我想安裝 HP CLI 實用程序,因此我首先檢查依賴項並發現需要一個名為 rpmlib 的東西:

[root@centos2 ~]# rpm -qRp hp-health-10.30-1752.15.rhel7.x86_64.rpm  | grep 
rpmlib

rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

我檢查是否已經安裝但找不到它:

[root@centos2 ~]# rpm -qa | grep -i rpmlib
[root@centos2 ~]# yum list installed | grep -i rpmlib
[root@centos2 ~]#

無論如何,我嘗試使用 yum 安裝,安裝套件沒有任何問題,並且缺少依賴項。

[root@centos2 ~]# yum list installed | grep -i hp
hp-health.x86_64                        10.30-1752.15.rhel7            installed

為什麼?

我想知道是否有可能某個軟體包已安裝在系統上但在使用 rpm 或 yum 命令時找不到?

答案1

rpmlib()依賴項指定 rpm 本身提供的功能,而不是實際的套件。需求的版本表示第一個具有指定功能的 rpm 版本。

答案2

您可以使用以下命令輕鬆顯示哪個套件提供此依賴項:

# rpm -q --whatprovides 'rtld(GNU_HASH)'
glibc-2.26-16.fc27.x86_64
glibc-2.26-16.fc27.i686

或者:

$ LC_ALL=C sudo dnf whatprovides 'rtld(GNU_HASH)'
Last metadata expiration check: 0:03:39 ago on Sat Nov 25 12:40:10 2017.
glibc-2.26-16.fc27.x86_64 : The GNU libc libraries
Repo        : @System
Matched from:
Provide    : rtld(GNU_HASH)

glibc-2.26-16.fc27.i686 : The GNU libc libraries
Repo        : @System
Matched from:
Provide    : rtld(GNU_HASH)

glibc-2.26-16.fc27.i686 : The GNU libc libraries
Repo        : updates
Matched from:
Provide    : rtld(GNU_HASH)

glibc-2.26-16.fc27.x86_64 : The GNU libc libraries
Repo        : updates
Matched from:
Provide    : rtld(GNU_HASH)

glibc-2.26-15.fc27.i686 : The GNU libc libraries
Repo        : fedora
Matched from:
Provide    : rtld(GNU_HASH)

glibc-2.26-15.fc27.x86_64 : The GNU libc libraries
Repo        : fedora
Matched from:
Provide    : rtld(GNU_HASH)

有關功能(又稱虛擬提供)的更多資訊可以在此處找到:https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-advanced-packaging.html#id818305

相關內容