4

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

我遇到的问题是新版本的 rpm 没有显示出来……而旧版本的 rpm 仍然显示,即使我从 repo 中删除它之后也是如此。

我已经尝试过yum updateyum clean all但它没有在我的本地存储库中获取最新数据。

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

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

** 更新 **

当我写这篇文章时,我想createrepo .在更新 rpm 后尝试一下。这使我能够安装最新版本。

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

4

3 回答 3

8

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

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

这只会处理自上次运行 createrepo 以来添加到您的 repo 的 RPM。

于 2013-09-04T02:28:11.500 回答
2

Fge's comment is correct. Every time you add a new rpm to a repository you must run createrepo. Otherwise the repo metadata doesn't get updated so it still sees the previous RPM as the latest version.

Edit: The docs that I linked to that explained the same steps as the answer below by Steve Goodman were removed for some reason, check out that answer instead (https://stackoverflow.com/a/18604484/1263015)

于 2012-12-29T22:32:32.393 回答
0

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

[internal]
metadata_expire=1h
于 2015-07-29T18:09:14.237 回答