1

How to resolve the following problem without the rpmlib(SetVersions):

[root@cspt3db5 install]#
[root@cspt3db5 install]#  
[root@cspt3db5 install]# rpm -ivh libgpm-1.20.1-alt18.1.x86_64.rpm       
error: Failed dependencies:
        rpmlib(SetVersions) is needed by libgpm-1.20.1-alt18.1.x86_64
[root@cspt3db5 install]# 
[root@cspt3db5 install]# 
[root@cspt3db5 install]# 
[root@cspt3db5 install]# rpm -q rpm-4.11.3-25.el7.x86_64 --showrc|grep -i rpmlib|grep -i version
    rpmlib(TildeInVersions) = 4.10.0-1
    rpmlib(VersionedDependencies) = 3.0.3-1
[root@cspt3db5 install]# 
[root@cspt3db5 install]# 
[root@cspt3db5 install]# 
[root@cspt3db5 install]# rpm -qp rpm-4.11.3-35.el7.x86_64.rpm --showrc|grep -i rpmlib|grep -i version
    rpmlib(TildeInVersions) = 4.10.0-1
    rpmlib(VersionedDependencies) = 3.0.3-1
[root@cspt3db5 install]# 
[root@cspt3db5 install]# 
1

You are trying to install an RPM package meant for a specific distro onto a different Linux distro.

From the suffix of your rpm package (.el7), it looks like you are using RHEL 7 or one of its derived distros, such as CentOS 7. The libgpm package you are trying to install has a .alt* suffix, which seems to be used by ALT Linux.

RPM packages meant for different distros are not generally compatible with each other and you're likely to bump into these incompatibilities between the dependencies, even on the implicit dependencies on the package manager itself.

On CentOS 7, you most likely want to use gpm-libs instead, which you can download here: gpm-libs-1.20.7-5.el7.x86_64.rpm. Or, better yet, install it using yum:

yum install gpm-libs

To address the more general question of how to find packages that satisfy a specific dependency, you can also query yum for that.

For example, to find rpmlib(SetVersions) if available:

yum whatprovides 'rpmlib(SetVersions)'

Assuming there exists such a package, you can also pass that feature directly to yum install to install the package that provides it:

yum install 'rpmlib(SetVersions)'

And, finally, you can use yum to install a local package, while resolving its dependencies from the database and installing necessary packages to satisfy them:

yum localinstall ./*.rpm

(Using yum install with a local file also works.)

  • Ok! Could you tell me whether the macros variable of rpmlib(SetVersions) itself exists in some special rpm-libs package ? – lylklb Feb 1 at 11:46
  • Updated the answer, @lylklb. It still doesn't tell you whether that's available on CentOS 7 (I don't have one handy right now) but it tells you how to find that out by running a yum command there. I hope that helps! – filbranden Feb 1 at 16:01
  • What I mean is that the RPM macros, such as rpmlib(SetVersions) , can only be searched via rpm --showrc! And yum whatprovides just finds some package that matches the key string in its package name! – lylklb Feb 2 at 6:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.