强制yum update命令排除某些软件包

时间:2020-01-09 10:43:10  来源:igfitidea点击:

在CentOS/RHEL/Fedora/Red Hat Enterprise Linux服务器上使用rum yum update命令时,如何排除选定的软件包?

Yum使用位于/etc/yum/yum.conf或者/etc/yum.conf的配置文件。
您需要放置"排除指令"来定义要从更新或者安装中排除的软件包列表。
这应该是一个用空格分隔的列表。Shell glob允许使用通配符*和?)。

使用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:禁用为给定的RepoID定义的排除项

yum exclude命令行选项

最后,您可以使用以下语法在命令行本身上跳过yum命令更新:

# yum --exclude=package\* update
# yum --exclude=php\* update
# yum --exclude=kernel\* update
# yum -x 'kernel*' -x 'php*' update

注意:上面的语法将从"所有存储库"的更新中按名称或者glob排除特定的软件包。