更新 rpm 仓库的最佳实践

更新 rpm 仓库的最佳实践

我想问一下如何服务和更新私有 rpm 存储库(epel、centos、rhel 镜像)。

我使用reposynccreaterepo工具下载包并生成“repodata”,通过网络服务器公开它,一切都运行正常,但是......

更新存储库的最佳方法是什么?

复杂的方式

我想在文件夹结构中拥有这样的符号链接:

/repos/7Server/x86_64/Ref -> /repos/7Server/x86_64/Ref.2016-06-22

所以每次我更新存储库时:

  1. 将创建副本
  2. 与上游同步
  3. 重新生成元数据
  4. 将符号链接指向最新版本
  5. 删除旧版本(文件夹)

元数据将始终与包匹配,并且存储库将保持一致。

简单的方法

但我发现,每一份文档中,人们都只是简单地reposync删除和更新新包参数。根本不关心客户端的任何不一致状态。


所以我只是想知道哪种方法是最好的,因为简单的方法可以节省一些时间、磁盘 io、配置和自动化复杂性。

谢谢你的帮助。

答案1

这是一个合理的担忧,但客户端也是一个问题。客户端还会缓存存储库信息。这意味着当存储库发生更改时,如果客户端尝试更新,但客户端尚未更新其本地缓存信息,则仍然会遇到问题。因此,您最终还是会运行yum clean all以强制他们更新其本地缓存。

所以实际上,担心存储库的一致性是可以的,但您还必须在客户端处理它。所以我只需更新存储库,并清理客户端上的缓存。

另外,您多久更新一次客户端上的软件包?您可以安排在几个小时后或客户端不会更新的时间进行重新同步。

相关内容