mrepo - 如何保留旧版本

mrepo - 如何保留旧版本

我有一个通过 mrepo / createrepo 更新的本地 yum 存储库,我的所有服务器都以这个本地存储库为目标进行更新,但它始终安装最新版本,这对于生产环境来说并不好。

我想实现一个程序来控制哪些版本的软件包被授权供客户端使用。所以我需要有多个版本的软件包。

我在 /etc/mrepo.conf 中尝试了以下参数,但我仍然看到由于在“mrepo-uvvg

mirrordir-cleanup = no
reposync-cleanup = no
reposync-newest-only = no
rhnget-cleanup = no
rhnget-download-all = yes
rsync-cleanup = no

/etc/mrepo.d/centos.conf:

[centos6]
name = CentOS Repo $release ($arch)
release = 6
arch = x86_64
metadata = repomd repoview yum

### Additional repositories
centos6 = http://mirror.csclub.uwaterloo.ca/centos/$release/os/$arch/
centos6-updates=http://mirror.csclub.uwaterloo.ca/centos/$release/updates/$arch/

答案1

您没有从 RHN 同步,因此“rhnget”选项对您没有任何作用。相反,我认为您lftp-cleanup = no在镜像 HTTP 源时需要它。

此外,您可以通过请求特定版本来更加精确,而不是发布yum update或。yum install package

yum install httpd-2.2.15-9.el6

这可能就是您想要在生产环境中做的事情。

客户端,你也可以使用 Yum 插件,版本锁,如果您需要对特定软件包进行版本控制,但又想自由地更新其他软件包。


编辑:

出于好奇,我花了一些时间在我们的 mrepo 服务器上查看此问题。的默认行为是lftp镜像远程主机。您能否提供显示软件包在 期间被删除的输出mrepo -ug

示例中的注释文档显示的lftp-cleanup是:

## 清理不在发送方的包?

因此,我的直觉似乎是正确的(尽管理由是错误的)。我敢打赌上游源没有存档软件包,并且您的默认 lftp-cleanup 值为是。您还应该确认源上仍提供软件包。

答案2

即使您让 mrepo 保留旧软件包版本,更新也将始终使用可用的最新版本。您正在寻找的解决方案涉及按不同时间表更新的多个本地存储库。

相关内容