這裡介紹如何在 Fedora、CentOS 或 RHEL 中鎖定套件,讓指定套件與軟體維持固定的版本,避免 yum
自動安裝或更新。
在目前主流的 Linux 系統上,絕大部分的軟體都是透過套件管理系統來安裝或更新的,管理者只要定期執行更新指令,即可讓所有的軟體維持在最新狀態。
然而在某些狀況下,我們可能會希望某些軟體固定維持在特定的版本下,不用隨著系統自動更新而改變,這時候就要將這種需要固定版本的軟體排除在套件管理系統之外。
以下我們介紹在 Fedora、CentOS 與 Red Hat Linux 中,如何設定
yum
套件管理系統,鎖定指定的套件,避免自動更新。
排除套件
在執行 yum
指令時,若要排除特定的套件,可以使用 --exclude
參數:
# 排除 nginx 套件 sudo yum --exclude=nginx update
在指定套件時,可以使用一般 shell 中的萬用字元,例如若要排除 nginx
相關的套件,可以執行:
# 排除 nginx 相關套件 sudo yum --exclude='nginx*' update
如果要排除多個不同的套件,可以使用多個 --exclude
參數分開指定,例如:
# 排除多個套件 sudo yum --exclude=nginx --exclude=php update
永久設定檔
如果要永久排除套件,可以將設定寫入 /etc/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 # 防止 nginx 相關套件更新 exclude=nginx*
若要排除多個套件,則用空白分隔即可:
# 排除多個套件 exclude=nginx php
若要排除所有 32 位元的套件,可以這樣寫:
# 排除 32 位元的套件 exclude=*.i?86