禁用使用Yum锁定某些软件包更新
- 从存储库安装新软件。
- 在安装软件之前安装这些依赖关系,以解决软件的依赖关系。
- 维护每个软件的依赖性的数据库。
- 降级任何现有软件的版本。
- 升级内核版本。
- 列出可用于安装的软件包。
使用Yum禁用/锁定软件包更新
黄狗更新,修改 (YUM)是基于RedHat的发行版本,比如CentOS的和Fedora包管理工具。下面讨论用于使用Yum锁定/禁用程序包更新的各种策略:1.永久禁用安装或更新程序包
1.打开并编辑yum.conf
文件,该文件位于
/etc/yum.conf中或
/etc/yum/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 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release ...在这里,要排除某些包从安装或向上渐变,你只需要添加排除变量以及你想要排除的包名。例如,如果我要排除所有的
python-3
从正在更新软件包,那么我只会追加以下行
yum.conf
:
exclude=python-3*对于多个包排除只是按空格分隔其名称。
exclude=httpd php
[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=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release exclude=python-3* [Exclude Single Package] exclude=httpd php [Exclude Multiple Packages] ...注意 :要包括这些包,忽视了项目
yum.conf
,用
“-disableexcludes”并将其设置为
全部|主| repoid,其中
“主要”是指那些进入
的yum.conf和
“repoid”是指那些排斥指定在
repos.d目录,解释以后。 现在让我们尝试安装或更新指定的包,并看到yum命令将禁用它们安装或更新。
# yum install httpd php Loaded plugins: fastestmirror, langpacks, versionlock Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in Nothing to do
# yum update httpd php Loaded plugins: fastestmirror, langpacks, versionlock Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in No packages marked for update
2.临时禁用安装或更新程序包
2.以上是一个永久性的解决方案,以排除包中,除非文件被编辑,这包将不会更新。 这里也是一个临时的解决方案。 就在当你去任何更新,使用时间-x
开关Yum命令排除那些你不想更新,像包:
# yum -x python-3 update上面的命令将更新所有的更新可用的软件包,但不包括
python-3
您的系统。 在这里,不包括多个包,使用
-x
多次,或者与独立的包名
','
在一个单一的开关。
# yum -x httpd -x php update OR # yum -x httpd,php update3.使用
--exclude
交换机的工作原理一样
-x,只需要
-exclude和传球来代替
-x
','
包名到它的分隔列表。
# yum --exclude httpd,php
3.使用存储库禁用包更新
4.通过添加存储库从任何外部源安装的包,还有另一种方式来阻止其向上渐变的未来。 这可以通过编辑来完成.repo
这是在
/etc/yum/repos.d/或
/etc/yum.repos.d目录下创建文件。 添加排除在
回购包名选项。 像:排除任何包说从
EPEL回购
酒 ,添加以下行
epel.repo
文件:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 exclude=wine现在尝试更新包 的葡萄酒 ,你会得到错误如下图所示:
# yum update wine Loaded plugins: fastestmirror, langpacks, versionlock epel/x86_64/metalink | 5.6 kB 00:00 Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirror.wanxp.id * extras: mirror.nbrc.ac.in * updates: mirror.nbrc.ac.in No Match for argument: wine No package wine available. No packages marked for update
4.使用versionlock选项禁用包更新
5.Yum另一种方式来掩盖任何软件包的版本从而使其不能用于向上层次,是用versionlock
Yum的选项,但要做到这一点,就必须
Yum插件-versionlock系统上安装的软件包。
# yum -y install yum-versionlock例如,要锁定包的版本说 的httpd 2.4.6只,只写下面的命令为root用户。
# yum versionlock add httpd
示例输出
Loaded plugins: fastestmirror, langpacks, versionlock Adding versionlock on: 0:httpd-2.4.6-40.el7.centos versionlock added: 1要查看锁定的包,使用以下命令将列出已被版本锁定的包。
# yum versionlock list httpd
示例输出
Loaded plugins: fastestmirror, langpacks, versionlock 0:httpd-2.4.6-40.el7.centos.* versionlock list done