我已经按照本指南创build了一个自定义存储库。
文件通过http(nginx)提供。 我已经cd到目录中用createrepo .创build元数据createrepo . 。 我可以通过我的自定义回购yum安装一个包; 到现在为止还挺好。
现在我想看看升级过程如何工作,这是我遇到麻烦的地方。 我的第一个软件包,我成功安装,从build-utils-20130930-62.noarch.rpm
所以我创build了一个新的包build-utils-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版! 我甚至尝试清除yumcachingsu -c 'yum clean headers'无济于事。
如何从自定义存储库获取新版本?
尝试:
yum clean all yum -y update build-utils
repolist被caching在你的yum客户端主机上。
“清除所有启用的存储库中的所有caching文件,有时不时运行,以确保没有任何使用不必要的空间。” [ 1 ]
我已经接受了@ dmourati的回答,而且我将这样做,但最终的解决scheme是更改我的存储库configuration文件,以便不在此存储库上caching。
[customrepo] name=Custom Repository baseurl=http://custom/$basearch enabled=1 metadata_expire=0
注意最后一行(再次感谢@dmourati!)。 这样我就不必运行任何types的yum clean ,并且所有其他仓库的caching仍然存在。
我在这个仓库上禁用caching的原因是这些是我们经常构build的专有应用程序包。 也许在生产中我会允许一些caching,但是我们必须看看构build/部署系统是如何形成的。