用exclude参数(禁止)排除指定软件包被yum升级

2016年6月16日

如何排除(防止)yum在升级过程中,将一些本不应该升级的旧版本的软件包升级到最新版本呢?用exclude参数(禁止)排除指定软件包被yum升级的 方法如下,适用于CentOs / RHEL /Fedora /Red Hat Enterprise 等linux版本。

打开/etc/yum.conf ,输入:

# vi /etc/yum.conf

在[main]段中,下添加一行,如下:

exclude=php* kernel* //这里假设是屏蔽php和内核升级

注意:可以用 * 和 ? 通配符

最后,yum.conf的内容要和下面相似:

[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.conf文件。然后再使用yum命令升级的话,php和kernel就不能被安装了

 

如何禁用(禁止) excludes ?

语法如下:

yum --disableexcludes=all update
yum --disableexcludes=main install php
yum --disableexcludes=repoid install php httpd

解释:

1.all 表示禁用所有的excludes

2.main 表示禁用 [main]中的excludes

3.repoid 表示禁用给定repo id 中的excludes

 

 

yum --exclude 命令参数的使用

使用该参数,跳过某些软件包后升级,参见文章《yum 命令跳过特定(指定)软件包升级方法》如下:

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

注意:上面的命令将会通过软件包的名字或名字通配符,在所有的源中排除那些被指定的软件包的升级

查看更多yum的使用方法,请查看man中解释。

$ man yum
$ man yum.conf

没有评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注