我帮助管理一个小型生产服务器。服务器运行 CentOS 的低版本。 CentOS最近宣布x86_64 上的 CentOS Linux 7 (1511) 版本。
跑步yum update
选择该版本并提供 400 多个软件包升级。我们现在想禁止生产服务器上的升级。
我们最担心的是意外升级,例如使用的脚本-y
。我们仍然希望收到旧版本 CentOS 的更新;我们只是不想升级操作系统。
我们如何配置 yum 以避免 CentOS 7 升级?
这是我们跑步时的样子yum update
:
$ sudo yum update
[sudo] password for xxxxxxxx:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hostduplex.com
* epel: linux.mirrors.es.net
* extras: mirror.hostduplex.com
* updates: mirror.hostduplex.com
Resolving Dependencies
...
Transaction Summary
================================================================================
Install 2 Packages (+6 Dependent packages)
Upgrade 412 Packages
Total download size: 374 M
Is this ok [y/d/N]:
这是我们的yum.conf
:
$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
这是手册中涉及配置的部分:12.4。配置 yum。但对我来说如何禁止升级并不明显。
答案1
这似乎是同一个问题如何将 Centos 保持在 6.3 版本?第二个答案可能会帮助您实现您想要的目标:https://serverfault.com/a/500606
像这样的东西可能会起作用:
yum --releasever=7.0 update
你可能必须适应,因为我不确定releasever
你当前安装的 CentOS 使用什么,也许你还需要使用 7.1。后者回答Yum:如何查看 $releasever、$basearch 和 $YUM0 等变量?应该可以帮助你。
尽管另一个消息来源提到这可能仍会从以后的版本中获取更新,请参阅http://www.linuxquestions.org/questions/linux-server-73/rhel-yum-update-without-migration-to-point-releases-4175456496/
FWIW,这也已经被以同样的方式问过如何保持 RHEL 版本静态(例如 RHEL 5.1)?但我认为该解决方案不会像上面那样干净地工作,或者它是否会工作。
答案2
有两种方法可以实现您的目标。
最简单的方法是添加到您的文件exclude=*
中 。/etc/yum.conf
第二个是禁用所有存储库。对于 /etc/yum.repos.d/ 中的每个存储库定义添加一行enabled=0
,即(CentOS-Base.repo):
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0