Rhel

libssh2 通過 RHEL 8 上的模組化過濾過濾掉

  • April 14, 2021

libssh2無法從 RHEL 8.1 和更高版本的 EPEL 儲存庫安裝 1.9(在 RHEL 8.3 上測試):

# dnf --enablerepo=epel install libssh2-1.9.0
...
All matches were filtered out by modular filtering for argument: libssh2-1.9.0
Error: Unable to find a match: libssh2-1.9.0

其他 EPEL RPM 可以毫無障礙地安裝。

如何在libssh2不下載和本地安裝的情況下安裝?

最簡單的方法是繞過模組過濾。

在該部分下編輯/etc/yum.repos.d/epel.repo並添加module_hotfixes=1[epel]

完畢。安裝將成功。

但是,上述解決方案可能過於寬泛。另一種方法是通過以下module_hotfixes命令在命令中設置--setopt

dnf --enablerepo=epel --setopt=epel.module_hotfixes=true install libssh2-1.9.0

libssh21.8 RPM 曾經是 RHEL 8.0 的一部分。但是libssh2-devel,並且libssh2-docs從未包含在 RHEL 中,而是在 EPEL 中提供。這使該軟體包的可用性變得複雜。因此,從 RHEL 8.1libssh2開始,也被移至 EPEL。但是它沒有從modules.yaml儲存庫的元數據文件中刪除rhel-8-for-x86_64-appstream-rpms。那就是問題所在。

如果要安裝 EPEL 版本,需要暫時禁用 AppStream 倉庫:

# dnf --enablerepo=epel --disablerepo=rhel-8-for-x86_64-appstream-rpms install libssh2-1.9.0

然後安裝就通過了。

RHEL 8.3 安裝 DVD ISO 上可用的模組元數據不知道libssh2,當此媒體用作儲存庫時,您不會遇到此問題。

Red Hat 意識到了這個問題: https ://bugzilla.redhat.com/show_bug.cgi?id=1805260

CentOS 8.1+ 可能也受到影響,但我沒有檢查。

引用自:https://unix.stackexchange.com/questions/644322