【问题标题】:Private repository - update so new rpms can be pulled immediately私有存储库 - 更新以便可以立即提取新的 rpm
【发布时间】:2012-12-14 07:41:08
【问题描述】:

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

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

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

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

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

** 更新**

在我写这篇文章时,我想在更新 rpm 后尝试 createrepo .。这让我可以安装最新版本。

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

【问题讨论】:

  • 是的,每次您修改存储库中的 RPM 集时,createrepo . 都是必需的。 yum 命令依赖于此命令创建的元数据文件才能正常运行。

标签: rpm rpmbuild


【解决方案1】:

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

编辑:我链接到的文档解释了与史蒂夫古德曼以下答案相同的步骤,由于某种原因被删除,请查看该答案 (https://stackoverflow.com/a/18604484/1263015)

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      [internal]
      metadata_expire=1h
      

      【讨论】:

        猜你喜欢
        • 2010-12-18
        • 1970-01-01
        • 1970-01-01
        • 2014-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-03
        • 2023-03-21
        相关资源
        最近更新 更多