在RHEL / CentOS / Fedora中禁用使用YUM的某些软件包更新

YUM(Yellowdog更新修改)是几种Linux版本一样RHEL( 红帽企业Linux), 摘录 S( 社区企业操作系统 )和Fedora一个开源默认的包管理系统。 yum工具是用来安装升级 ,在系统中的分布存储库中删除基于RPM软件包。

但有时我们不想做更新某些软件包,如Apache服务器 (HTTP),MySQL,PHP和其他主要的应用程序,因为如果这样的更新可能会在服务器上损害当前运行的Web应用程序或您可能会停止更新,直到将应用程序打补丁与新的更新。

YUM排除软件包更新


在这篇文章中,我们将向您展示如何,我们可以使用YUM工具排除(禁用)某些软件包更新。 我们可以从任何第三方存储库中排除或禁用某些包更新。 排除语法如下。

exclude=package package1 packages*

上述语法将排除“ ”,“ 包1”和“ 一揽子 ”更新或安装列表。 每个关键字应以空格分隔,以便排除包。

如何排除YUM中的包

为了排除(禁用)特定的软件包更新,称为/etc/yum.conf中与您选择的编辑器打开文件。

# vi /etc/yum.conf

使用exclude关键字在文件底部添加以下行,如下所示。

[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=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
# This is the default, if you make this bigger yum won't see if the metadata 
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
## Exclude following Packages Updates ##
exclude=httpd php mysql

在上面的例子中,该行排除将禁用“ httpd”,“PHP”“mysql的 ”包更新。 让我们尝试安装或使用YUM命令,如下图所示更新其中之一。

# yum update httpd
示例输出
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.01link.hk
* extras: centos.01link.hk
* updates: mirrors.hns.net.in
base                                                   | 3.7 kB     00:00
extras                                                 | 3.0 kB     00:00
updates                                                | 3.5 kB     00:00
updates/primary_db                                     | 2.7 MB     00:16
Setting up Update Process
No Packages marked for Update

如何从EPEL Repo中排除软件包

要排除的软件包安装或更新来自EPEL软件库,然后打开名为/etc/yum.repos.d/epel.repo文件。

# vi /etc/yum.repos.d/epel.repo

通过指定要从更新中排除的包来添加排除行。

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
## Exclude following Packages Updates ##
exclude=perl php python

现在尝试更新上面使用YUM命令EPEL软件库指定的文件。

# yum --enablerepo=epel update perl php python
示例输出
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.hns.net.in
* epel: ftp.kddilabs.jp
* extras: mirrors.hns.net.in
* updates: mirrors.hns.net.in
Setting up Update Process
No Packages marked for Update

您还可以使用yum命令行选项来排除包而不添加到存储库文件。

# yum --exclude=httpd update

要排除程序包列表,请使用以下命令。

# yum --exclude=mysql\* --exclude=httpd\* update

这样,您可以排除任何所需的包的更新。 还有很多其他方法可以做,例如,最近我们编译了一篇文章,关于4在Linux中使用yum命令阻止/禁用或锁定某些包的有用方法,您应该在这里阅读:

4种使用Yum命令禁用某些软件包更新的方法

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏