0

I want to install a HP CLI utility so I first check the dependencies and find out that something called rpmlib is needed :

[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

I check if I have it already installed but can't find it :

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

I try to install anyway with yum and the package is installed without any problems and depedencies missing.

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

Why?

I would like to know if it is possible that a package be installed on a system but not found when using rpm or yum commands?

2 Answers 2

3

rpmlib() dependencies specify capabilities provided by rpm itself, not actual packages. The version of the requirement represents the version of rpm that first had the named capability.

3
  • Ok I understand about rpmlib thanks. However, that doesn't answer my last question.
    – Pozinux
    Nov 23, 2017 at 11:31
  • 1
    You can extract the files from a package and place them manually, but it isn't "installed" unless rpm knows about it. Nov 23, 2017 at 11:32
  • 1
    @Pozinux You could basically remove an installed rpm package just from rpms database, the actual files in that package would still be in place but the package would not be considered "installed" anymore. Refer to rpms --justdb option.
    – doktor5000
    Dec 2, 2017 at 16:08
1

You can easily display which package provides this dependency using:

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

or:

$ 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)

More about capabilities (aka Virtual Provides) can be found here: https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-advanced-packaging.html#id818305

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .