The error message you're seeing indicates a fundamental version mismatch between your system's RPM capabilities and what the package requires. Let's break down the syntax:
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadIsXz) <= 5.2-1
This means:
rpmlib
refers to RPM's internal capabilities (not a separate package)- The parentheses indicate specific features (
FileDigests
andPayloadIsXz
) - The
<= version
specifies the maximum required version of these capabilities
CentOS 5 ships with RPM 4.4.2.3, which predates these features. The package was built for systems with:
# Compare versions
$ rpm --version
rpm-4.4.2.3
The key problems:
- Your RPM version is too old to understand XZ-compressed payloads
- The FileDigests feature wasn't implemented in your RPM version
- This is a fundamental incompatibility, not just missing dependencies
Option 1: Find a Compatible Package Version
For EPEL specifically:
# For CentOS 5, use EPEL 5 packages
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
rpm -ivh epel-release-latest-5.noarch.rpm
Option 2: Manual Package Extraction
If you must use the newer package:
# Extract contents without installing
rpm2cpio epel-release-6-5.noarch.rpm | cpio -idmv
# Then manually place files
cp etc/yum.repos.d/epel.repo /etc/yum.repos.d/
cp etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 /etc/pki/rpm-gpg/
Option 3: RPM Rebuild (Advanced)
Rebuild the package with compatible settings:
# Install rebuild tools
yum install rpm-build
# Rebuild with old compatibility
rpmbuild --rebuild --define "_source_filedigest_algorithm md5" \
--define "_binary_filedigest_algorithm md5" epel-release-6-5.src.rpm
To resolve the NOKEY warning:
# Import the EPEL 6 key (even if you're on CentOS 5)
rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
# Or disable verification (not recommended)
rpm -ivh --nogpgcheck epel-release-6-5.noarch.rpm
While you might consider upgrading RPM, this would require:
- Replacing core system components
- Potential system instability
- Possible incompatibility with other packages
In most cases, finding a compatible package version is safer than trying to force newer packages onto an old system.
After applying any solution, verify EPEL is properly configured:
yum repolist
yum --disablerepo="*" --enablerepo="epel" list available
When you encounter errors like:
rpmlib(FileDigests) <= 4.6.0-1 is needed by package
rpmlib(PayloadIsXz) <= 5.2-1 is needed by package
This indicates your RPM version is too old to handle the package's requirements. The syntax rpmlib(Feature)
represents internal RPM capabilities, not separate packages.
CentOS 5 ships with RPM 4.4.2.3, which predates these features:
- FileDigests: Introduced in RPM 4.6.0 for stronger file verification
- PayloadIsXz: Added in RPM 5.2 for XZ-compressed payloads
Option 1: Install Compatible EPEL Release
For CentOS 5, use the legacy EPEL package:
wget https://archives.fedoraproject.org/pub/archive/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm
Option 2: Force Installation (Not Recommended)
If absolutely necessary, you can force installation with:
rpm -ivh --nodeps epel-release-6-5.noarch.rpm
Warning: This may cause system instability.
Option 3: RPM Backport (Advanced)
Compile newer RPM tools for CentOS 5:
wget http://rpm.org/releases/rpm-4.6.x/rpm-4.6.1.tar.gz
tar xzf rpm-4.6.1.tar.gz
cd rpm-4.6.1
./configure --prefix=/usr/local/rpm4.6
make
sudo make install
For the "NOkey, key ID 0608b895" warning:
sudo rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
Consider upgrading to a supported OS version. CentOS 5 reached EOL in March 2017 and contains unpatched security vulnerabilities.