Linux

配置 yum 安裝私有建構的 rpm

  • June 4, 2021

我需要安裝一些我自己建構到 RHEL8.3 中的 RPMS。我創建了 RPMS,而不是將它們添加到 red hat 的 iso 映像中。我將它們添加到 BaseOS 目錄下,並在安裝 red hat 時掛載映像並配置 /etc/yum.repos.d/something.repo,如下所示。

[InstallMedia]
name=Red Hat Enterprise Linux 8.3.0
enabled=1
baseurl=file:///mnt/old_valid/BaseOS
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
mediaid=None
metadata_expire=-1
gpgcheck=1
cost=500

這工作正常我可以執行 yum update 並查看一切正常。當我嘗試安裝我的私有建構 rpm 時,我得到

Error: Unable to find a match: svr_common 即使二進製文件在那裡。

我嘗試通過在已安裝目錄下提供 rpm 的完整路徑來安裝它,並且可以正常工作

yum install /mnt/old_valid/BaseOS/Packages/svr_common-0.0-10000.x86_64.rpm

似乎我需要在 repo 中配置其他東西,但不確定那是什麼。

當您指向yum儲存庫時,它不會遍歷儲存庫以搜尋 *.rpm 文件,它最初僅嘗試訪問儲存庫元數據。

這些元數據文件為 yum 提供了該 repo(以及更多)中可用軟體包的概述,並使 yum 操作更加方便。

在對現有儲存庫進行更改或為自定義 RPM 文件創建新儲存庫後,您需要更新/生成儲存庫元數據,否則 yum 將無法檢測到這些更改。

您需要安裝該createrepo軟體包,然後為此使用相同的 createrepo 命令。

cd /mnt/old_valid/BaseOS
createrepo --database /mnt/old_valid/BaseOS

額外的標誌,如--update可以加速現有 repo 上的 createrepo 操作,其中只進行了很少的更改。

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