我有一台 EL5 机器。我想在此主机上镜像 EL6 rpm 的 Puppet 存储库。如何在 EL5 主机上镜像 EL6 或 Fedora 存储库?
我使用它是reposync
因为我需要的是 repo 上最新的软件包,而不是整个存储库。
我的 .repo 文件包含以下内容:
# cat puppetlabs.repo.el6
[main]
# Override default releasever, per `man yum.conf`
releasever=6
# Try distroverpkg instead?
distroverpkg=6
[puppetlabs-products]
name=Puppet Labs Products El 6 - $basearch
baseurl=http://yum.puppetlabs.com/el/6/products/$basearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=0=1
gpgcheck=1
我的命令行如下。如您所见,reposync
当我需要显示“el6”时,我会在 URL 后面附加“el5”。
# lsb_release -r
Release: 5.10
# reposync --newest-only --repoid=puppetlabs-products --config=puppetlabs.repo.el6 --urls
http://yum.puppetlabs.com/el/6/products/x86_64/facter-1.6.6-1.el5.noarch.rpm
http://yum.puppetlabs.com/el/6/products/x86_64/facter-2.0.1-1.el5.x86_64.rpm
http://yum.puppetlabs.com/el/6/products/x86_64/hiera-1.3.2-1.el5.noarch.rpm
答案1
我猜你使用的机器也在 /etc/yum.repos.d/ 中安装了 puppetlabs repo?如果你从那里删除它(并刷新 yum 缓存),你还会看到这个问题吗?
我猜你会想给 reposync 一个全新的 yum.conf(通过 --config),指定一个与正常系统目录不同的缓存目录。
答案2
感谢@devicenull 引导我走上正确的道路。我让下面的代码工作起来。我必须对和distroverpkg
进行硬编码。cachedir
persistdir
这是我的 repo 文件:
# cat puppetlabs.repo.el6
# NOTE: This [main] section is required to workaround yum wierdness when we mirror distroverpkg=6 from an el5 host
[main]
distroverpkg=6
cachedir=/var/cache/puppetlabsmirror.el6/cache/
persistdir=/var/cache/puppetlabsmirror.el6/var
keepcache=0
[puppetlabs-products]
name=Puppet Labs Products El 6 - $basearch
baseurl=http://yum.puppetlabs.com/el/6/products/$basearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=1
现在以下命令可以正常工作:
# reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --newest-only --urls http://yum.puppetlabs.com/el/6/products/x86_64/facter-1.6.7-1.el6.noarch.rpm
http://yum.puppetlabs.com/el/6/products/x86_64/facter-2.0.1-1.el6.x86_64.rpm
http://yum.puppetlabs.com/el/6/products/x86_64/hiera-1.3.2-1.el6.noarch.rpm
http://yum.puppetlabs.com/el/6/products/x86_64/hiera-puppet-1.0.0-1.el6.noarch.rpm