如何在不清理缓存的情况下让 yum 查看本地存储库的更新?

Mat*_*att 20 yum rpm repository

我已经建立了一个本地 yum 存储库,用于安装测试版本。出于测试目的,我的包由<svn version number>.<date>.<time>(例如12345.20110908.150404

问题是,一旦我创建了一个新的 RPM,将它复制到存储库目录并运行createrepo $REPO_DIR,yum 不会看到新的 RPM 可用。

$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm

$ createrepo .
# ...snip...

$ rpm -q package
package-12345.20110908.150404-1.x86_64

$ yum list --showduplicates package
Installed Packages
package.x86_64    12345.20110908.150404-1    @repo
Available Packages
package.x86_64    12345.20110908.150404-1    repo
Run Code Online (Sandbox Code Playgroud)

如果我运行yum clean all然后重新获取元数据,我可以看到更新并获取它们,但我认为这只是意味着我需要从存储库中做其他事情,因为我不必为其他 yum 存储库执行此操作。

我需要如何设置我的本地存储库,以便我只需yum update要从客户端运行而不必清理我的 yum 缓存?

Jam*_*ill 26

您可以运行“yum clean expire-cache”,这是告诉 yum 检查存储库的更有效方法。...要做的另一件事是更改本地存储库的 metadata_expire 值。(参见 man yum.conf)。


小智 11

尝试在 Yum 客户端的 /etc/yum.conf 中添加以下行:

metadata_expire=1m

以下命令向您显示更多信息:

男人 yum.conf

供参考。CentOS 5 已注释掉该参数。CentOS 6.2 有 90m 为值。