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