私有存储库 - 更新所以可以立即提取新的rpm

问题描述 投票:2回答:3

我设置了一个私有存储库(现在是本地挂载)并构建了自定义rpms。我们的想法是构建rpm,将其添加到repo,并将yum update mypackage触发到多个服务器。

我遇到的问题是rpm的较新版本没有出现......而旧的rpm版本仍然存在,即使我从repo中删除了它。

我已经尝试了yum updateyum clean all,但它没有得到我当地的回购中的最新数据。

当我卸载软件包并重新安装它时,它会尝试安装不再存在的旧rpm,然后失败。

更新回购数据的过程是什么,以便我可以立即运行更新?

**更新**

在我写这篇文章时,我想在更新rpms后尝试createrepo .。这允许我安装最新版本。

这是我在更新文件后应该运行的吗?

rpm rpmbuild
3个回答
2
投票

Fge的评论是正确的。每次向存储库添加新rpm时,都必须运行createrepo。否则,repo元数据不会更新,因此它仍然将先前的RPM视为最新版本。

编辑:我链接到的文档解释了与Steve Goodman下面的答案相同的步骤因某些原因被删除了,请查看答案(https://stackoverflow.com/a/18604484/1263015


5
投票

重建存储库元数据的最快方法是使用createuppo的--update标志:

createrepo --update -v /path/to/repo

这将仅处理自上次运行createrepo以来添加到您的仓库的RPM。


0
投票

我还发现我需要修改我的yum.repo.d / internal.repo文件以包含一个metadata_expire行,它比平常更快地使元数据过期。

[internal]
metadata_expire=1h
© www.soinside.com 2019 - 2024. All rights reserved.