我有一个非常奇怪的问题。我已经设置了我的私人 yum 存储库,它提供的 rpm 很好,除了 1 rpm。
假设我已经构建并复制了所有 rpm 到我的自定义存储库目录,大致如下:
postgresql-myStuff11-11.7-2.el8.x86_64.rpm
postgresql-myStuff11-libs-11.7-2.el8.x86_64.rpm
postgresql-myStuff11-devel.7-2.el8.x86_64.rpm
postgresql-myStuff11-docs-11.7-2.el8.x86_64.rpm
...
所有这些都在那里,我已经清除了我的 yum 缓存,使用重建了我的 yum 存储库,createrepo --update
甚至删除了整个repodata
文件夹并重新创建它等。但无论我做什么,当我运行yum search myStuff
(或myStuff11 等)。
它只会返回除主包之外的所有其他内容。
Searching Packages:
==========================================================================================
Name Matched: myStuff11
==========================================================================================
postgresql-myStuff11-libs.x86_64 : The shared libraries required for any PostgreSQL clients
Repo : @System
Matched from:
Provide : postgresql-myStuff11-libs = 11.7-2.el8
...
起初,我认为这可能是因为Name:
我的规范文件内部使用了定义的变量,但即使在我将其更改为字符串之后,它仍然是完全相同的东西......
问题:
- 你如何才能
yum
看到包裹postgresql-myStuff11-11.7-2.el8.x86_64.rpm
?
无论出于何种原因,我必须
createrepo
使用数据库 (-d
) 标志。这是我为了让它工作/显示我的包所做的事情。cd /opt/myrepo
rm -rf repodata
,把它擦干净createrepo -v -d .
(其中.
是/opt/myrepo
)然后,您可以在远程计算机上运行
yum update --refresh
以获取新的更改。如果没有该
-d
标志,它无法列出/显示我构建的所有包,我不知道为什么。环境位于 RHEL 8 系统中,因此这可能(也可能不是)特定于createrepo
.