在本文中,我們將深入了解如何升級 CentOS 發行版上的特定軟件包。 有時,您可能需要升級某些軟件包,而將其他軟件包保留為默認版本。 原因之一是保持用於運行關鍵服務(如數據庫和 Web 服務器)的包的穩定性。 有時升級可能會導致包發生變化,影響服務的正常運行。
在 CentOS 中使用 yum 升級特定軟件包
在做任何其他事情之前,我們可能需要首先檢查具有掛起更新的軟件包。 為此,請運行以下命令
yum list updates
您可能需要顯示系統中存在的軟件包的多個版本。 為此,請運行以下命令
yum --showduplicates list httpd | expand
在上面 example,您將顯示多個版本的 httpd 包。
Installed Packages
httpd.x86_64 2.4.6-67.el7_4.6 @rhui-REGION-rhel-server-releases
Available Packages
httpd.x86_64 2.4.6-17.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-18.el7_0 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-19.el7_0 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-31.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-31.el7_1.1 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-40.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-40.el7_2.1 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-40.el7_2.4 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-45.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-45.el7_3.4 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7_4.2 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7_4.5 rhui-REGION-rhel-server-releases
httpd.x86_64 2.4.6-67.el7_4.6 rhui-REGION-rhel-server-releases
從上面的結果,我們注意到當前安裝的httpd包是版本 2.4.6-67.el7_4.6 這是最新的。 如果您想安裝特定版本的軟件包,您會怎麼做? 其語法如下所示
yum install packagename version
為了 example, 如果您希望降級到 2.4.6-67.el7_4.5 版本,則需要先刪除最新版本,如圖所示。
yum remove httpd
此後,如圖所示安裝首選的 httpd 版本。
yum install httpd 2.4.6-67.el7_4.5
為了鎖定我們安裝的軟件包的版本,避免任何未來的更新,我們使用 versionlock 插件。 要安裝插件,請運行
yum install yum-versionlock
樣本輸出
yum-plugin-versionlock-1.1.31-42.el7.noarch.rpm | 32 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : yum-plugin-versionlock-1.1.31-42.el7.noarch 1/1
Verifying : yum-plugin-versionlock-1.1.31-42.el7.noarch 1/1
Installed:
yum-plugin-versionlock.noarch 0:1.1.31-42.el7
Complete!
要鎖定我們的 httpd 包版本,我們將運行以下命令
yum versionlock httpd
輸出
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos, versionlock
Adding versionlock on: 0:httpd-2.4.6-67.el7_4.5
versionlock added: 1
升級特定軟件包
yum upgrade package-name
要暫時從升級中排除包,請運行以下命令
yum --exclude update package-name
或者,您可以使用 -x
標誌而不是 --exclude
yum -x exclude httpd,php
上述命令將在升級其餘包時從升級中排除 httpd 和 php 包。
如果要永久禁用更新包,請找到 yum.conf
在 /etc/yum/yum.conf
這是它的外觀的快照
要排除包,請附加 exclude=package-name
在配置文件的末尾。 在這 example,我們將從升級中排除 samba、httpd、php 和 mariadb 包,如下所示。
如果您嘗試升級其中任何一個軟件包,您將獲得 No packages marked for update
錯誤。
相關閱讀:
- 如何從 Yum 更新中排除特定包
- 如何從 apt-get Upgrade 中排除特定包
歡迎您試用這些命令。 非常歡迎您的反饋。 謝謝你。