Centos

如何安裝抱怨 rpmlib(FileDigests) <= 4.6.0-1 的 rpm?

  • July 8, 2021

我試圖在 CentOS 5 上安裝一個 rpm 文件,但我不確定如何解決它帶來的這個問題:

$ 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) &lt;= 4.6.0-1 is needed by epel-release-6-5.noarch
   rpmlib(PayloadIsXz) &lt;= 5.2-1 is needed by epel-release-6-5.noarch

rpmlib(FileDigests) <= 4.6.0-1 行是什麼意思?rpmlib 過時還是 FileDigests 過時?括號後面的東西的語法是什麼?

我嘗試使用 yum 以便它可以自動解決依賴關係,但它無法:

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

在此頁面https://bugzilla.redhat.com/show_bug.cgi?id=665073上,他們說我的 rpm 已過時,但隨後說我應該請求一個適用於我的 rpm 版本(即 4.4. 2.3) 但我不想那樣做。如何使我的系統與此 rpm 文件兼容?

如果您告訴我如何修復公鑰錯誤,則可以加分。

括號後面的東西的語法是什麼?

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

Perl 和 Tcl 等腳本語言允許附加模組。您的軟體包可能需要其中一些附加模組。RPM 使用帶括號的特殊語法來指示腳本模組依賴關係。例如: Requires: perl(Carp) >= 3.2 這表示對 Perl 的 Carp 附加模組的要求,大於或等於 3.2 版本。

在這種情況下,它指的是 rpm 庫的特定功能。

錯誤:依賴失敗:epel-release-6-5.noarch 需要 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadIsXz) <= 5.2-1 需要 epel-release-6-5.noarch

這表明您正在嘗試epel-release在不是為它設計的系統上安裝 rpm。實際上,在您的問題中,您聲明您正在 CentOS 5 上安裝它,而您嘗試安裝的軟體包是為 CentOS 6(或 RHEL 6)設計的。對於 CentOS 5,您需要epel-release-5-4.noarch.rpm。在繼續之前,您可能需要閱讀EPEL 文件,它會回答這個問題以及您可能遇到的其他問題。

我嘗試使用 yum 以便它可以自動解決依賴關係,但它無法:

是的,因為這些功能在 CentOS 5 上不可用。從你的角度來看,yum你已經向它詢問了魔法獨角獸。它找不到任何東西。

如果您告訴我如何修復公鑰錯誤,則可以加分。

安裝 EPEL 簽名密鑰。如果你閱讀了 EPEL 文件——你會在那裡找到令人驚奇的東西——你會得到一個指向https://fedoraproject.org/keys的連結,其中包括有關安裝 Fedora 項目使用的公鑰的說明。

引用自:https://serverfault.com/questions/280099