我如何让 yum 查看本地 repo 的更新而不清除缓存?

我如何让 yum 查看本地 repo 的更新而不清除缓存?

我已经建立了一个本地 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

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

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

答案1

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

答案2

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

元数据过期=1m

以下命令显示更多信息:

yum.conf 文件

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

答案3

yum clean metadata仅清理缓存的名称等,然后 yum 重新加载其可用的内容。

答案4

yum 的 --enablerepo=localrpmrepo 是您想要的选项。因此

yum --enablerepo=localrpmrepo clean metadata

将 localrpmrepo 替换为您的 repos 名称

相关内容