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