我需要安装一些我自己构建到 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 命令。额外的标志,如
--update
可以加速现有 repo 上的 createrepo 操作,其中只进行了很少的更改。