在 CentOS 7 中,yum 默認會安裝軟件的最新版本,這對于大多數情況是有益的,但有時我們可能需要安裝指定版本的舊版軟件,或者出于兼容性等需求,希望避免升級到最新版。幸運的是,yum 提供了幾種方法,幫助我們安裝特定版本的軟件包。下面就詳細介紹幾種常見的方法,幫助你在 CentOS 7 中靈活安裝指定版本的軟件。
1. 查看可用版本
首先,你需要查看某個軟件包的所有可用版本。通過以下命令,你可以列出倉庫中該軟件包的所有版本信息:
yum list <軟件包名> –showduplicates
例如,如果你想查看 nginx 的所有可用版本:
yum list nginx –showduplicates
該命令會列出所有可用的版本信息,包括版本號和架構類型。通過這種方式,你可以選擇合適的版本進行安裝。
2. 安裝指定版本的軟件包
一旦你找到了想要安裝的版本,可以使用以下命令來安裝指定版本的包:
yum install <軟件包名>–<版本號>
例如,假設你想安裝 nginx 版本 1.18.0:
yum install nginx-1.18.0
在運行該命令時,確保版本號與倉庫中的版本完全匹配。如果沒有指定正確的版本,yum 會默認安裝最新的版本。
3. 使用 yum versionlock 鎖定軟件版本
如果你想安裝某個特定版本的軟件,并確保在未來不會因為系統更新而意外升級,可以使用 yum-plugin-versionlock 插件來鎖定軟件包的版本。首先,你需要安裝這個插件:
yum install yum-plugin-versionlock
安裝完成后,你可以使用以下命令來鎖定指定版本:
yum versionlock <軟件包名>–<版本號>
例如,要鎖定 nginx 的 1.18.0 版本:
yum versionlock nginx-1.18.0
這樣,即使你運行 yum update,nginx 的版本也不會被自動更新。如果你想查看哪些軟件包已被鎖定,可以使用:
yum versionlock list
解除鎖定某個軟件包時,可以使用:
yum versionlock delete <軟件包名>
4. 安裝特定版本的軟件包并禁用更新
如果你希望禁用更新,但仍然安裝指定版本的軟件,可以使用 –disableexcludes=all 選項。這將阻止 yum 自動從其他源拉取更新:
yum install <軟件包名>–<版本號> –disableexcludes=all
這對于避免軟件包版本在安裝時被誤升級很有幫助。
5. 通過 rpm 安裝舊版本
有時候,yum 倉庫中并沒有你需要的特定版本軟件。在這種情況下,你可以通過手動下載 .rpm 包并使用 rpm 工具進行安裝。首先,從 CentOS 官方鏡像站或其他可靠的源下載所需版本的 .rpm 包,然后使用以下命令進行安裝:
rpm -ivh
例如,假設你已經下載了 nginx-1.18.0-1.el7.x86_64.rpm 文件,可以通過:
rpm -ivh nginx-1.18.0-1.el7.x86_64.rpm
如果軟件包已經安裝且需要回退到舊版本,也可以使用 rpm -U 命令進行升級:
rpm -Uvh nginx-1.18.0-1.el7.x86_64.rpm
6. 使用 yum downgrade 降級軟件包
如果你已經安裝了某個新版本的軟件,并希望將其降級到舊版本,可以使用 yum downgrade 命令:
yum downgrade <軟件包名>–<版本號>
例如,假設你安裝了 nginx 的一個較新版本,現在需要將其降級到 1.18.0 版本:
yum downgrade nginx-1.18.0
yum downgrade 會將軟件包恢復到你指定的版本,同時處理相關依賴問題。
7. 手動指定特定軟件源進行安裝
如果你需要從某個特定的軟件源安裝指定版本的軟件,可以通過 –enablerepo 參數啟用該軟件源。例如:
yum install <軟件包名>–<版本號> –enablerepo=
假設你希望從 nginx-stable 倉庫安裝 nginx 版本 1.18.0:
yum install nginx-1.18.0 –enablerepo=nginx-stable
通過這種方式,你可以確保安裝來自特定倉庫的軟件包版本。
8. 安裝軟件時的其他注意事項
確保版本匹配:在安裝軟件時,要確保你選擇的版本與系統架構匹配(如 x86_64)。
軟件包倉庫:如果你有多個軟件源,確保你從正確的倉庫安裝軟件,以免出現版本不一致的問題。
軟件鎖定:在使用 yum versionlock 時要小心,以免不小心鎖定了不需要的軟件包版本,造成后續依賴問題。