在这篇文章中,我们将讨论如何在使用“yum”命令更新 Linux 操作系统时保留当前和较旧的 Linux 软件包。
请注意,/etc/yum.conf 配置文件包含一个 [main] 部分。
如果需要,我们可以在 [main] 部分下添加许多其他选项。
[main] 部分中的一些键值对会影响 yum 的运行方式。
示例 /etc/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 installonlypkgs= kernel-2.6.32-279.2.1.el6.x86_64, kernel-2.6.32-100.24.1.el5 installonly_limit=3 ... # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
installonly_limit 指令
另请检查下面提到的 installonly_limit 指令。
此选项设置可以同时安装 installonlypkgs 指令中列出的软件包数量。
我们可以用一个整数标记该值,该整数表示可以为 installonlypkgs 中列出的任何单个包同时安装的最大版本数。
installonlypkgs 指令的默认值包括几个不同的内核包,因此请注意,更改 installonly_limit 的值也会影响任何单个内核包的最大已安装版本数。
/etc/yum.conf 中列出的默认值是 installonly_limit=3,不建议减小该值,尤其是低于 2.
installonly_limit installonlypkgs 中列出的要同时安装的软件包数。
设置为 0 将禁用此功能。
# vi /etc/yum.conf installonly_limit=value
我们可以通过将 installonly_limit 设置为 0 来完全禁用该功能:
# vi /etc/yum.conf installonly_limit=0
installonlypkgs 指令
使用 /etc/yum.conf 文件下的“installonlypkgs=space 分隔的软件包列表”指令,提供一个空格分隔的软件包列表,yum 可以安装但永远不会更新。
有关默认情况下仅安装的软件包列表,请参阅 yum.conf 的手册页。
# man yum.conf
如果我们将 installonlypkgs 指令添加到 /etc/yum.conf,我们需要确保提供仅用于安装的软件包列表,包括在 man yum.conf 的 installonlypkgs 部分下列出的任何软件包。
特别是,内核包应始终在 installonlypkgs 中列出(因为它们是默认值),并且 installonly_limit 应始终设置为大于 2 的值,以便备份内核始终可用,以防默认内核无法启动。
# vi /etc/yum.conf installonlypkgs=space separated list of packages
使用 yumdb 命令
或者使用 yumdb 命令,我们可以设置某个包在更新时不被删除。
要使用 yumdb 命令,我们需要安装“yum-utils”包:
# yum install yum-utils
yumdb 命令示例:
# yumdb set installonly keep kernel-2.6.32-279.2.1.el6.x86_64
如果要恢复之前的更改,可以使用以下命令:
# yumdb del installonly kernel-2.6.32-279.2.1.el6.x86_64