我创建了一个自定义存储库本指南。
文件通过 http (nginx) 提供。我已cd
进入目录以使用 创建元数据createrepo .
。我可以通过 yum 从我的自定义存储库安装包;到目前为止一切顺利。
现在我想看看升级过程是如何进行的,这就是我遇到的问题。我成功安装的第一个软件包来自构建实用程序-20130930-62.noarch.rpm
所以我创建了一个新的包构建实用程序-20131001-63.noarch.rpm,然后在 repo 目录中sudo createrepo --update .
。现在我尝试一下sudo yum --nogpgcheck install build-utils
,结果
Package build-utils-20130930-62.noarch already installed and latest version
我尝试通过更明确的 yum 调用来安装新版本
sudo yum --nogpgcheck install build-utils-20131001-63
结果
No package build-utils-20131001-63 available.
决定深入研究 filelists.xml 文件,看看更新是否有效,果然
<package pkgid="c12eb685ebfedf4dd3155d0910517f3eb208dac09cc36b9e971541f038a4590d" name="build-utils" arch="noarch">
<version epoch="0" ver="20131001" rel="63"/>
所以我甚至尝试完全删除当前版本
yum remove build-utils
现在我要从头开始安装
sudo yum --nogpgcheck install build-utils
yum 仍然提供 62 版本!我甚至尝试清除 yum 缓存,su -c 'yum clean headers'
但无济于事。
如何从自定义存储库获取新版本?
答案1
尝试:
yum clean all
yum -y update build-utils
repolist 被缓存在你的 yum 客户端主机上。
“清除所有已启用存储库中的所有缓存文件。不时运行很有用,以确保没有任何内容占用不必要的空间。” [1]
答案2
我已经接受了@dmourati 的回答,并且我将保留它,但是最终的解决方案是更改我的存储库配置文件,以便不缓存在此存储库上。
[customrepo]
name=Custom Repository
baseurl=http://custom/$basearch
enabled=1
metadata_expire=0
注意最后一行(再次感谢@dmourati!)。这样我就不必运行任何类型的yum clean
,并且所有其他存储库的缓存仍然有效。
我禁用此存储库的缓存的原因是,这些是我们将频繁构建的专有应用程序包。也许在生产中我会允许一些缓存,但我们必须看看构建/部署系统的情况如何。