我该如何安装一个抱怨 rpmlib(FileDigests)

我该如何安装一个抱怨 rpmlib(FileDigests)

我正在尝试在 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) <= 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

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 文件,但我不想这样做。我该如何使我的系统与此 rpm 文件兼容?

如果您告诉我如何修复公钥错误,我将获得加分。

答案1

某些内容后面跟着括号的语法是怎样的?

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 epel-release-6-5.noarch 需要 rpmlib(PayloadIsXz) <= 5.2-1

这表明你正在尝试epel-release在非设计用于的系统上安装 rpm。事实上,在你的问题中,你声明你正在 CentOS 5 上安装它,而你尝试安装的软件包是为 CentOS 6(或 RHEL 6)设计的。对于 CentOS 5,你需要EPEL-发布-5-4.noarch.rpm。您可能想阅读EPEL 文档在您继续之前,这将回答这个问题以及您可能遇到的其他问题。

我尝试使用 yum 以便它可以自动解决依赖关系,但是无法做到:

是的,因为这些功能在 CentOS 5 上不可用。从yum你要求它提供魔法独角兽的角度来看。它找不到任何魔法独角兽。

如果您告诉我如何修复公钥错误,我将获得加分。

安装 EPEL 签名密钥。如果你阅读 EPEL 文档——你会发现那里的内容很神奇——你会得到一个链接https://fedoraproject.org/keys,其中包括有关安装 Fedora 项目使用的公钥的说明。

答案2

您想要 EPEL 版本 5.x(而不是 6.x)。

http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

您正在使用 CentOS 5。CentOS 6 尚未推出。

答案3

目前在 CentOS 5.5 上对我有用的 rmp 链接是:

# rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

自动处理依赖关系。

另请注意,仔细阅读以下转发可能会有所帮助: http://dl.fedoraproject.org/pub/epel/5/i386/(/6/i386/ 等)来找到最合适/正确的地址。

答案4

我在 CentOS8 上尝试安装键盘区域输入语言切换器时遇到了类似的错误

CentOS Linux release 8.1.1911 (Core) 
Derived from Red Hat Enterprise Linux 8.1 (Source)
ID_LIKE="rhel fedora"
PLATFORM_ID="platform:el8"
4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 GNU/Linux

yum install /home/i/Downloads/xneur-0.20.0-6.fc31.x86_64.rpm

...

Error: transaction check vs depsolve:
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by xneur-0.20.0-6.fc31.x86_64

问题出在 zstd 有效载荷(压缩)中https://bugzilla.redhat.com/show_bug.cgi?id=1715799 RHEL8/CentOS8 尚不支持

https://fedoraproject.org/wiki/Changes/Switch_RPMs_to_zstd_compression

rpm -q rpm-libs rpm
rpm-libs-4.14.2-25.el8.x86_64
rpm-4.14.2-25.el8.x86_64

然后我下载了 RPM 和 libs 版本 4.14.2-三十六来自官方CentOS Stream 仓库

在哪里添加了 zstd 支持

  • 2019 年 10 月 16 日星期三 Panu Matilainen - 4.14.2-二十六
  • 重新启用对 zstd 的支持(#1715799)

并通过 ( 安装小心你可能会破坏你的系统allowerasing選擇!自行承担风险

dnf install --allowerasing python3-rpm-4.14.2-36.el8.x86_64.rpm rpm-4.14.2-36.el8.x86_64.rpm rpm-build-libs-4.14.2-36.el8.x86_64.rpm rpm-libs-4.14.2-36.el8.x86_64.rpm

一些软件包被删除

Removing dependent packages:
 buildah                           x86_64        1.9.0-5.module_el8.1.0+237+63e26edc             @AppStream           24 M
 container-selinux                 noarch        2:2.107-2.module_el8.1.0+237+63e26edc           @AppStream           40 k
 rpm-build                         x86_64        4.14.2-25.el8                                   @AppStream          314 k
 rpm-plugin-selinux                x86_64        4.14.2-25.el8                                   @anaconda            14 k
 rpm-plugin-systemd-inhibit        x86_64        4.14.2-25.el8                                   @anaconda            14 k
 rpm-sign                          x86_64        4.14.2-25.el8                                   @anaconda            23 k
 selinux-policy                    noarch        3.14.3-20.el8                                   @anaconda            24 k
 selinux-policy-targeted           noarch        3.14.3-20.el8                                   @anaconda            49 M

error: selabel_open: (/etc/selinux/targeted/contexts/files/file_contexts) No such file or directory
error: Plugin selinux: hook psm_pre failed
error: selinux-policy-3.14.3-20.el8.noarch: erase failed

Failed:
  selinux-policy-3.14.3-20.el8.noarch

不知道如何修复 selinux 以及其他受影响的东西,但现在我可以从 Fedora/EPEL 安装新的 RPM

当然,我自己安装了 Facebook 的 Zstandard 归档器 (*.zst application/zstd)

yum install zstd libzstd

相关内容