yum 无法在私人仓库中找到特定的包

yum 无法在私人仓库中找到特定的包

我遇到了一个非常奇怪的问题。我已经设置了我的私人 yum 存储库,它可以很好地提供 rpm,除了一个 rpm。

假设我已经构建并将所有 rpm 复制到我的自定义 repo 目录,如下所示:

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 repo,createrepo --update甚至删除了整个repodata文件夹并重新创建它等。但无论我做什么,当我运行(或 myStuff11 等)时,它都找不到我的主包yum search myStuff

它只会返回除主包之外的所有其他内容。

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:我的 spec 文件内部使用了定义的变量,但即使在我将它更改为字符串后,它仍然是完全相同的东西......

问题:

  • 您如何才能yum看到包裹postgresql-myStuff11-11.7-2.el8.x86_64.rpm

答案1

无论出于什么原因,我都必须createrepo使用数据库 ( -d) 标志。下面是我为使其工作/显示我的包所做的操作。

  1. 转到你的 YUM repo 文件夹,例如:cd /opt/myrepo
  2. rm -rf repodata,擦拭干净
  3. 重新创建 repo 但使用数据库,createrepo -v -d .(在.哪里/opt/myrepo

然后,在您的远程机器上,您可以运行yum update --refresh以获取新的更改。

如果没有该-d标志,它就无法列出/显示我构建的所有软件包,我不知道为什么。环境是在 RHEL 8 系统中,因此这可能是(也可能不是)特定于 的错误createrepo

createrepo --version
Version: 0.17.7 (Features: DeltaRPM LegacyWeakdeps )

相关内容