强制 yum update 命令排除某些软件包
如何在 CentOS / RHEL / Fedora / Red Hat Enterprise Linux 服务器下运行 yum update 命令时排除选定的软件包?
Yum 使用位于 /etc/yum/yum.conf 或 /etc/yum.conf 的配置文件。您需要放置排除指令来定义要从更新或安装中排除的软件包列表。这应该是空格分隔的列表。允许使用通配符 * 和 ?) 的 Shell 通配符。
当我使用“yum update”时如何排除 php 和内核包?
打开 /etc/yum.conf 文件,输入:
# vi /etc/yum.conf
在 [main] 部分下附加以下行,输入:
exclude=php* kernel*
最后,它应该如下所示:
[main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 exclude=php* kernel* # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h # Default. # installonly_limit = 3 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
保存并关闭文件。您现在可以照常使用 yum 命令,但某些包将无法安装。
如何禁用排除?
您可以使用以下语法:
yum --disableexcludes=all update yum --disableexcludes=main install php yum --disableexcludes=repoid install php httpd
在哪里,
- all:禁用所有排除
- main:禁用 yum.conf 中 [main] 中定义的排除项
- repoid:禁用针对给定 repo id 定义的排除
yum –exclude 命令行选项
最后,您可以使用以下语法在命令行上跳过 yum 命令更新:
注意:上述语法将从所有存储库的更新中按名称或 glob 排除特定包。
# yum --exclude=package\* update
# yum --exclude=php\* update
# yum --exclude=kernel\* update
# yum -x 'kernel*' -x 'php*' update
推荐阅读:
有关更多信息,请使用以下命令查看 yum 命令的手册页:
$ man yum
$ man yum.conf