4種使用Yum命令禁用/鎖定某些軟件包更新的方法


每一個Linux發行版附帶了其上述功能默認包管理器,但所有這些發現,大部分的人是: YumRHELFedora系統(它當前正在與DNFFedora 22+起代替)從Debian 貼切 。 如果您正在尋找APT工具來阻止或禁用某些特定軟件包的更新,那么你應該閱讀這篇文章。

DNFDanifiedYum在Fedora系統,這是另一位在我們的名單更換Yum 。如果適當地探索,這些包管理器可以用於以下功能:

  1. 從存儲庫安裝新軟件。
  2. 在安裝軟件之前安裝這些依賴關系,以解決軟件的依賴關系。
  3. 維護每個軟件的依賴性的數據庫。
  4. 降級任何現有軟件的版本。
  5. 升級內核版本。
  6. 列出可用於安裝的軟件包。

我們已經通過實際示例單獨介紹了每個單獨的包管理器的詳細文章,您應該閱讀它們以控制和管理各自的Linux發行版中的包管理。 閱讀:

  1. 掌握Yum命令與這20個實例
  2. 27個DNF命令來管理Fedora 22+版本中的軟件包
  3. 學習25個APT命令來管理Ubuntu軟件包

在文章中,我們將看到如何使用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另一種方式來掩蓋任何軟件包的版本從而使其不能用於向上層次,是用versionlockYum的選項,但要做到這一點,就必須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包管理器。如果你有任何其他的技巧做同樣的事情,你可以評論他們與我們。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM