轉載
https://www.howtoing.com/yum-lock-disable-blacklist-certain-package-update-version
禁用使用Yum鎖定某些軟件包更新
每一個Linux發行版附帶了其上述功能默認包管理器,但所有這些發現,大部分的人是: Yum在RHEL和Fedora系統(它當前正在與DNF在Fedora 22+起代替)從Debian 貼切 。 如果您正在尋找APT工具來阻止或禁用某些特定軟件包的更新,那么你應該閱讀這篇文章。
DNF或DanifiedYum在Fedora系統,這是另一位在我們的名單更換Yum 。如果適當地探索,這些包管理器可以用於以下功能:
- 從存儲庫安裝新軟件。
- 在安裝軟件之前安裝這些依賴關系,以解決軟件的依賴關系。
- 維護每個軟件的依賴性的數據庫。
- 降級任何現有軟件的版本。
- 升級內核版本。
- 列出可用於安裝的軟件包。
我們已經通過實際示例單獨介紹了每個單獨的包管理器的詳細文章,您應該閱讀它們以控制和管理各自的Linux發行版中的包管理。 閱讀:
在文章中,我們將看到如何使用RHEL / CentOS的和Fedora系統Yum軟件包管理器鎖定/禁用某些軟件包更新 (適用到Fedora的21,后來新的Fedora版本附帶DNF默認包管理器)。
使用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 update
3.使用--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
結論
這些是一些提示,將幫助您禁用/鎖定包更新使用yum包管理器。如果你有任何其他的技巧做同樣的事情,你可以評論他們與我們。