1. 程式人生 > >在 RHEL/CentOS 系統上使用 YUM history 命令回滾升級操作 | Linux 中國

在 RHEL/CentOS 系統上使用 YUM history 命令回滾升級操作 | Linux 中國

yum history 命令允許系統管理員將系統回滾到上一個狀態,但由於某些限制,回滾不是在所有情況下都能成功,有時 yum 命令可能什麼都不做,有時可能會刪掉一些其他的包。
-- 2daygeek

本文導航
編譯自 | https://www.2daygeek.com/rollback-fallback-updates-downgrade-packages-centos-rhel-fedora/ 
 作者 | 2daygeek
 譯者 | lujun9972

為伺服器打補丁是 Linux 系統管理員的一項重要任務,為的是讓系統更加穩定,效能更加優化。廠商經常會發布一些安全/高危的補丁包,相關軟體需要升級以防範潛在的安全風險。

Yum (Yellowdog Update Modified) 是 CentOS 和 RedHat 系統上用的 RPM 包管理工具,yum history 命令允許系統管理員將系統回滾到上一個狀態,但由於某些限制,回滾不是在所有情況下都能成功,有時 yum 命令可能什麼都不做,有時可能會刪掉一些其他的包。

我建議你在升級之前還是要做一個完整的系統備份,而 yum history 並不能用來替代系統備份的。系統備份能讓你將系統還原到任意時候的節點狀態。

推薦閱讀:

◈ 在 RHEL/CentOS 系統上使用 YUM 命令管理軟體包[1]
◈ 在 Fedora 系統上使用 DNF (YUM 的一個分支)命令管理軟體包 
[2]
◈ 如何讓 history 命令顯示日期和時間[3]

某些情況下,安裝的應用程式在升級了補丁之後不能正常工作或者出現一些錯誤(可能是由於庫不相容或者軟體包升級導致的),那該怎麼辦呢?

與應用開發團隊溝通,並找出導致庫和軟體包的問題所在,然後使用 yum history 命令進行回滾。

注意:

◈ 它不支援回滾 selinux,selinux-policy-*,kernel,glibc (以及依賴 glibc 的包,比如 gcc)。
◈ 不建議將系統降級到更低的版本(比如 CentOS 6.9 降到 CentOS 6.8),這會導致系統處於不穩定的狀態

讓我們先來看看系統上有哪些包可以升級,然後挑選出一些包來做實驗。

  1. #yum update

  2. Loaded plugins: fastestmirror, security

  3. Setting up UpdateProcess

  4. Loading mirror speeds from cached hostfile

  5. epel/metalink |12 kB 00:00

  6. * epel: mirror.csclub.uwaterloo.ca

  7. base |3.7 kB 00:00

  8. dockerrepo |2.9 kB 00:00

  9. draios |2.9 kB 00:00

  10. draios/primary_db |13 kB 00:00

  11. epel |4.3 kB 00:00

  12. epel/primary_db |5.9 MB 00:00

  13. extras |3.4 kB 00:00

  14. updates |3.4 kB 00:00

  15. updates/primary_db |2.5 MB 00:00

  16. ResolvingDependencies

  17. -->Running transaction check

  18. --->Packagegit.x86_64 0:1.7.1-8.el6 will be updated

  19. --->Packagegit.x86_64 0:1.7.1-9.el6_9 will be an update

  20. --->Package httpd.x86_64 0:2.2.15-60.el6.centos.4 will be updated

  21. --->Package httpd.x86_64 0:2.2.15-60.el6.centos.5 will be an update

  22. --->Package httpd-tools.x86_64 0:2.2.15-60.el6.centos.4 will be updated

  23. --->Package httpd-tools.x86_64 0:2.2.15-60.el6.centos.5 will be an update

  24. --->Package perl-Git.noarch 0:1.7.1-8.el6 will be updated

  25. --->Package perl-Git.noarch 0:1.7.1-9.el6_9 will be an update

  26. -->FinishedDependencyResolution

  27. DependenciesResolved

  28. =================================================================================================

  29. PackageArchVersionRepositorySize

  30. =================================================================================================

  31. Updating:

  32. git x86_64 1.7.1-9.el6_9 updates 4.6 M

  33. httpd x86_64 2.2.15-60.el6.centos.5 updates 836 k

  34. httpd-tools x86_64 2.2.15-60.el6.centos.5 updates 80 k

  35. perl-Git noarch 1.7.1-9.el6_9 updates 29 k

  36. TransactionSummary

  37. =================================================================================================

  38. Upgrade4Package(s)

  39. Total download size:5.5 M

  40. Isthis ok [y/N]: n

你會發現 git 包可以被升級,那我們就用它來實驗吧。執行下面命令獲得軟體包的版本資訊(當前安裝的版本和可以升級的版本)。

  1. #yumlistgit

  2. Loaded plugins: fastestmirror, security

  3. Setting up UpdateProcess

  4. Loading mirror speeds from cached hostfile

  5. * epel: mirror.csclub.uwaterloo.ca

  6. InstalledPackages

  7. git.x86_64 1.7.1-8.el6@base

  8. AvailablePackages

  9. git.x86_64 1.7.1-9.el6_9 updates

執行下面命令來將 git 從 1.7.1-8 升級到 1.7.1-9

  1. #yum update git

  2. Loaded plugins: fastestmirror, presto

  3. Setting up UpdateProcess

  4. Loading mirror speeds from cached hostfile

  5. * base: repos.lax.quadranet.com

  6. * epel: fedora.mirrors.pair.com

  7. 相關推薦

    yum安裝命令徹底刪除安裝的依賴包

    yum命令安裝一個軟體包是會連同依賴包一起安裝 但是yum remove解除安裝時卻只解除安裝這個檔案包本身,如果需要刪除安裝時附加的依賴包可以使用yum history的相關操作實現回滾 [[email protected] opt]# yum his

    yum安裝命令徹底刪除安全的依賴包

    yum命令安裝一個軟體包是會連同依賴包一起安裝但是yum remove解除安裝時卻只解除安裝這個檔案包本身,如果需要刪除安裝時附加的依賴包可以使用yum history的相關操作實現回滾[[email protected] opt]# yum history lis

    centos系統yum安裝與解除安裝軟體常見命令

    1.使用yum安裝和解除安裝軟體,有個前提是yum安裝的軟體包都是rpm格式的。 安裝的命令是,yuminstall ~,yum會查詢資料庫,有無這一軟體包,如果有,則檢查其依賴衝突關係,如果沒有依賴衝突,那麼最好,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴

    介紹兩種在RHELCentOS 系統檢查或列出已安裝的安全更新的方法

    在本文中,我們將向你展示如何檢查已安裝的安全更新。我會介紹兩種方法,你可以選擇最適合你的。 此外,我還添加了一個小的 

    centos 系統如何把python升級為3

    AC ntc 調用 ash 啟用 lec art 如何 需要 SCL 源目前由 CentOS SIG 維護,除了重新編譯構建 Red Hat 的 Software Collections 外,還額外提供一些它們自己的軟件包。 該源中包含不少程序的更高版本,可以在不改變原有舊

    CentOS 7 yum 安裝 MYSQL 8.0

    MySQL1、配置 yum 源rpm -i https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm2、安裝 MySQL Serveryum install mysql-community-{server,client,commo

    Linux系統傳下載命令rz和sz

    file escape yum 進制 二進制 -o -- sca code Linux系統簡單易用的上傳下載命令rz和sz yum install lrzsz -y 上傳(rz)-b, --binary:以二進制方式傳輸,推薦使用-e, --escape:對所有控制字符轉

    002-nodejs部署到centos系統

      感覺每次從0到1都會遇到各種坑   這次買了一個雲伺服器,想把nodejs專案部署到centos上 也是遇到了好多坑   首先就是自己的作業系統是windows,怎麼把命令複製到vnc上呢, 我真的是不知道,所以只能一行一行地寫

    centos系統MySQL的安裝,配置及密碼修改

    一、Centos上yum安裝(CentOS6.4 64位),在伺服器上執行的命令 1、安裝mysql yum install mysql mysql-server mysql-devel -y 最後提示 Complete! 表示安裝成功 2、檢視是否生成了mysqld服務

    hadoop在centos系統的偽分散式安裝

    建立hadoop使用者 建立hadoop使用者可以使不同使用者之間有明確的許可權區別,也可使針對hadoop的配置操作不影響其他使用者的使用。 >>su root //切換到超級系統管理員,需要輸入密碼 >>useradd -

    Centos系統 nginx 代理多個域名站點

    域名的解析現在就不多說了,強調一下,多個域名要解析到同一個IP下在配置nginx代理一個域名前,需要在centos上啟動多個服務,可以使tomcat,apache獲取其他的服務,但是埠要不一致,並沒有被佔用.我用的是127.0.0.1:8080    和 127.0.0.1:

    centos系統mysql5.6.12版本安裝

    1.安裝相關的工具 yum install gcc gcc-c++ yum install make yum install ncurses-devel yum install cmake -y 2.下載軟體包 wget http://dev.my

    centOS系統安裝mysql

    如果要在Linux上做j2ee開發,首先得搭建好j2ee的開發環境,包括了jdk、tomcat、eclipse的安裝(這個在之前的一篇隨筆中已經有詳細講解了Linux學習之CentOS(七)--CentOS下j2ee環境搭建),如果要開發web專案,我們當然可以安裝一個m

    雲主機的linux(CentOs)系統搭建spark單機環境

    1.準備工作 (1)安裝工具包(自行下載) (2)window與linux連線操作軟體(自行下載) (3)統一安裝路徑 所有安裝包我放在 /home/study/spark/package 目錄下  所有安裝我均安裝在 /home/study/spark 目錄

    centos 7 yum 安裝 vscode

    rpm --import https://packages.microsoft.com/keys/microsoft.asc sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.

    centos系統yum源為163

    Centos安裝好之後,按照網上教程對yum源進行修改,但更新之後發現總是提示更新失敗,到163網站上查詢資源發現目前大部分網上的教程都寫錯地址了,呵呵 下面是正確的辦法,請參考 1、進入存放源配置的資料夾 cd /etc/yum.repos.d 2、備份預設源 mv .

    centos 系統伺服器yum源報錯“No module named yum

    使用YUM 安裝軟體,出錯提示如下: There was a problem importing one of the Python modules  required to run yum. The error leading to this problem was:

    yum刪除與

    刪除:yum remove xxx,注意:刪除的同時,會把依賴於xxx的軟體(不是xxx依賴的)一併刪除,因為如果xxx不存在了,依賴於xxx的軟體也無法執行。 回滾:yum history list

    linuxgit如何正確程式碼

    方法一,刪除遠端分支再提交 ①首先兩步保證當前工作區是乾淨的,並且和遠端分支程式碼一致 $ git co currentBranch $ git pull origin currentBranch $ git co ./ ②備份當前分支(如有必要) $ git bra