我们的软件栈需要一些特定版本的RPM软件包。 不幸的是,其中一些软件包随着时间推移而被弃用,并且因为维护者不保留档案(EPEL,Percona,…)而被从回收站中删除。
这是configurationpipe理中的一个问题。 我们要确保我们提供一个新的机器与旧的(我们使用Puppet)相同的软件。
我想标准的解决scheme是将这些软件包托pipe在我们为自己设立的专用YUM仓库中。 这对于我们需要从源代码编译的软件包也是有益的。
我的问题是:你是否知道Yum repo服务器的任何“代理工具”,以便每个代理从那里下载软件包,并且repo服务器从外部,原始源下载软件包,然后将它们caching到本地? (如果他们从原始回购消失)
Java世界的一个类比是Archiva,它是一个Maven repo服务器,也可以用来代理对公共仓库的请求并在本地caching它们。
操作系统:Centos 6.4
谢谢
我认为mrepo是一个很好的工具。 您将其指向上游存储库,并将在本地进行镜像。 configuration选项lftp-cleanup = no , rhnget-cleanup = no等会阻止它从上游删除本地镜像包。
达格的mrepo
下载你想要的特定的RPM版本。 创build你自己的本地仓库,只包含你想要的包。 将您的客户指向新的本地存储库。 停止使用那些不符合你要求的公共部分。
开始:
yum -y install createrepo && man createrepo
太空行走可以处理这个。 (虽然请注意,EL7将被Pulp或Katello所取代。)
使用Squid代理上游并在本地caching。