Aug 9, 2011
tom

How do I install an rpm that complains about rpmlib(FileDigests) <= 4.6.0-1?

Question

Im trying to install an rpm file on CentOS 5 and Im not sure how to resolve this issues it brings up:

$ rpm --install epel-release-6-5.noarch.rpm
warning: epel-release-6-5.noarch.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 0608b895
error: Failed dependencies:
    rpmlib(FileDigests) <= 4.6.0-1 is needed by epel-release-6-5.noarch
    rpmlib(PayloadIsXz) <= 5.2-1 is needed by epel-release-6-5.noarch

What do the lines rpmlib(FileDigests) <= 4.6.0-1 mean? is rpmlib out of date or FileDigests out of date? Whats with the syntax of something followed by parentheses?

Ive tried to use yum so that it can resolve dependencies automatically but it is unable:

$ sudo yum --nogpgcheck install epel-release-6-5.noarch.rpm
...
Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
rpmlib(FileDigests) is needed by epel-release-6-5.noarch
rpmlib(PayloadIsXz) is needed by epel-release-6-5.noarch
Complete!
(1, [u'Please report this error in https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%205&component=yum'])

On this page https://bugzilla.redhat.com/show_bug.cgi?id=665073, they say my rpm is out of date but then say I should request an rpm file that works with my version of rpm (which is 4.4.2.3) but I don’t want to do that. How do I make my system compatible with this rpm file?

Bonus points if you tell me how I can fix the public key error.

Answer

Whats with the syntax of something followed by parentheses?

From http://jfearn.fedorapeople.org/en-US/RPM/0.1/html/RPM_Guide/ch-advanced-packaging.html:

Scripting languages such as Perl and
Tcl allow for add-on modules. Your
package may require some of these
add-on modules. RPM uses a special
syntax with parenthesis to indicate
script module dependencies. For
example: Requires: perl(Carp) >= 3.2
This indicates a requirement for the
Carp add-on module for Perl, greater
than or equal to version 3.2.

In this case, it is referring to particular features of the rpm library.

error: Failed dependencies:
rpmlib(FileDigests) <= 4.6.0-1 is needed by epel-release-6-5.noarch
rpmlib(PayloadIsXz) <= 5.2-1 is needed by epel-release-6-5.noarch

This suggests you’re trying to install the epel-release rpm on a system for which it was not designed. In fact, in your question, you state you’re installing this on CentOS 5, while the package you’re attempting to install is designed for CentOS 6 (or RHEL 6). For CentOS 5, you want epel-release-5-4.noarch.rpm. You might want to read the EPEL documentation before you proceed, which would have answered this question as well as others you might have.

Ive tried to use yum so that it can resolve dependencies automatically but it is unable:

Right, because those features aren’t available on CentOS 5. From the perspective of yum you’ve asked it for magic unicorns. It can’t find any.

Bonus points if you tell me how I can fix the public key error.

Install the EPEL signing key. If you read the EPEL documentation — it’s amazing what you’ll find there — you’ll get a link to https://fedoraproject.org/keys, which includes instructions on installing the public keys used by the Fedora project.

Related posts:

  1. Scientific linux: How to install yum using rpm?
  2. How to install pgAdmin3 in CentOS6?
  3. Removed YUM? CentOS 5.5
  4. disable the public key check for rpm installation
  5. rpm spec: conditional require based of distro version

Leave a comment