您好,登錄后才能下訂單哦!
在RHEL/CentOS系統上使用YUM history命令回滾升級操作是怎樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
為服務器打補丁是 Linux 系統管理員的一項重要任務,為的是讓系統更加穩定,性能更加優化。廠商經常會發布一些安全/高危的補丁包,相關軟件需要升級以防范潛在的安全風險。
Yum (Yellowdog Update Modified) 是 CentOS 和 RedHat 系統上用的 RPM 包管理工具,yum history
命令允許系統管理員將系統回滾到上一個狀態,但由于某些限制,回滾不是在所有情況下都能成功,有時 yum
命令可能什么都不做,有時可能會刪掉一些其他的包。
我建議你在升級之前還是要做一個完整的系統備份,而 yum history
并不能用來替代系統備份的。系統備份能讓你將系統還原到任意時候的節點狀態。
某些情況下,安裝的應用程序在升級了補丁之后不能正常工作或者出現一些錯誤(可能是由于庫不兼容或者軟件包升級導致的),那該怎么辦呢?
與應用開發團隊溝通,并找出導致庫和軟件包的問題所在,然后使用 yum history
命令進行回滾。
注意:
它不支持回滾 selinux,selinux-policy-*,kernel,glibc (以及依賴 glibc 的包,比如 gcc)。
不建議將系統降級到更低的版本(比如 CentOS 6.9 降到 CentOS 6.8),這會導致系統處于不穩定的狀態
讓我們先來看看系統上有哪些包可以升級,然后挑選出一些包來做實驗。
# yum updateLoaded plugins: fastestmirror, securitySetting up Update ProcessLoading mirror speeds from cached hostfileepel/metalink | 12 kB 00:00 * epel: mirror.csclub.uwaterloo.cabase | 3.7 kB 00:00dockerrepo | 2.9 kB 00:00draios | 2.9 kB 00:00draios/primary_db | 13 kB 00:00epel | 4.3 kB 00:00epel/primary_db | 5.9 MB 00:00extras | 3.4 kB 00:00updates | 3.4 kB 00:00updates/primary_db | 2.5 MB 00:00Resolving Dependencies--> Running transaction check---> Package git.x86_64 0:1.7.1-8.el6 will be updated---> Package git.x86_64 0:1.7.1-9.el6_9 will be an update---> Package httpd.x86_64 0:2.2.15-60.el6.centos.4 will be updated---> Package httpd.x86_64 0:2.2.15-60.el6.centos.5 will be an update---> Package httpd-tools.x86_64 0:2.2.15-60.el6.centos.4 will be updated---> Package httpd-tools.x86_64 0:2.2.15-60.el6.centos.5 will be an update---> Package perl-Git.noarch 0:1.7.1-8.el6 will be updated---> Package perl-Git.noarch 0:1.7.1-9.el6_9 will be an update--> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size=================================================================================================Updating: git x86_64 1.7.1-9.el6_9 updates 4.6 M httpd x86_64 2.2.15-60.el6.centos.5 updates 836 k httpd-tools x86_64 2.2.15-60.el6.centos.5 updates 80 k perl-Git noarch 1.7.1-9.el6_9 updates 29 k Transaction Summary=================================================================================================Upgrade 4 Package(s) Total download size: 5.5 MIs this ok [y/N]: n
你會發現 git
包可以被升級,那我們就用它來實驗吧。運行下面命令獲得軟件包的版本信息(當前安裝的版本和可以升級的版本)。
# yum list gitLoaded plugins: fastestmirror, securitySetting up Update ProcessLoading mirror speeds from cached hostfile * epel: mirror.csclub.uwaterloo.caInstalled Packagesgit.x86_64 1.7.1-8.el6 @baseAvailable Packagesgit.x86_64 1.7.1-9.el6_9 updates
運行下面命令來將 git
從 1.7.1-8
升級到 1.7.1-9
。
# yum update gitLoaded plugins: fastestmirror, prestoSetting up Update ProcessLoading mirror speeds from cached hostfile * base: repos.lax.quadranet.com * epel: fedora.mirrors.pair.com * extras: mirrors.seas.harvard.edu * updates: mirror.sesp.northwestern.eduResolving Dependencies--> Running transaction check---> Package git.x86_64 0:1.7.1-8.el6 will be updated--> Processing Dependency: git = 1.7.1-8.el6 for package: perl-Git-1.7.1-8.el6.noarch---> Package git.x86_64 0:1.7.1-9.el6_9 will be an update--> Running transaction check---> Package perl-Git.noarch 0:1.7.1-8.el6 will be updated---> Package perl-Git.noarch 0:1.7.1-9.el6_9 will be an update--> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size=================================================================================================Updating: git x86_64 1.7.1-9.el6_9 updates 4.6 MUpdating for dependencies: perl-Git noarch 1.7.1-9.el6_9 updates 29 k Transaction Summary=================================================================================================Upgrade 2 Package(s) Total download size: 4.6 MIs this ok [y/N]: yDownloading Packages:Setting up and reading Presto delta metadataProcessing delta metadataPackage(s) data still to download: 4.6 M(1/2): git-1.7.1-9.el6_9.x86_64.rpm | 4.6 MB 00:00(2/2): perl-Git-1.7.1-9.el6_9.noarch.rpm | 29 kB 00:00-------------------------------------------------------------------------------------------------Total 5.8 MB/s | 4.6 MB 00:00Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Updating : perl-Git-1.7.1-9.el6_9.noarch 1/4 Updating : git-1.7.1-9.el6_9.x86_64 2/4 Cleanup : perl-Git-1.7.1-8.el6.noarch 3/4 Cleanup : git-1.7.1-8.el6.x86_64 4/4 Verifying : git-1.7.1-9.el6_9.x86_64 1/4 Verifying : perl-Git-1.7.1-9.el6_9.noarch 2/4 Verifying : git-1.7.1-8.el6.x86_64 3/4 Verifying : perl-Git-1.7.1-8.el6.noarch 4/4 Updated: git.x86_64 0:1.7.1-9.el6_9 Dependency Updated: perl-Git.noarch 0:1.7.1-9.el6_9 Complete!
驗證升級后的 git
版本.
# yum list gitInstalled Packagesgit.x86_64 1.7.1-9.el6_9 @updates 或# rpm -q gitgit-1.7.1-9.el6_9.x86_64
現在我們成功升級這個軟件包,可以對它進行回滾了。步驟如下。
首先,使用下面命令獲取 yum 操作的 id。下面的輸出很清晰地列出了所有需要的信息,例如操作 id、誰做的這個操作(用戶名)、操作日期和時間、操作的動作(安裝還是升級)、操作影響的包數量。
# yum history或# yum history list allLoaded plugins: fastestmirror, prestoID | Login user | Date and time | Action(s) | Altered------------------------------------------------------------------------------- 13 | root | 2017-08-18 13:30 | Update | 2 12 | root | 2017-08-10 07:46 | Install | 1 11 | root | 2017-07-28 17:10 | E, I, U | 28 EE 10 | root | 2017-04-21 09:16 | E, I, U | 162 EE 9 | root | 2017-02-09 17:09 | E, I, U | 20 EE 8 | root | 2017-02-02 10:45 | Install | 1 7 | root | 2016-12-15 06:48 | Update | 1 6 | root | 2016-12-15 06:43 | Install | 1 5 | root | 2016-12-02 10:28 | E, I, U | 23 EE 4 | root | 2016-10-28 05:37 | E, I, U | 13 EE 3 | root | 2016-10-18 12:53 | Install | 1 2 | root | 2016-09-30 10:28 | E, I, U | 31 EE 1 | root | 2016-07-26 11:40 | E, I, U | 160 EE
上面命令顯示有兩個包受到了影響,因為 git
還升級了它的依賴包 perl-Git
。 運行下面命令來查看關于操作的詳細信息。
# yum history info 13Loaded plugins: fastestmirror, prestoTransaction ID : 13Begin time : Fri Aug 18 13:30:52 2017Begin rpmdb : 420:f5c5f9184f44cf317de64d3a35199e894ad71188End time : 13:30:54 2017 (2 seconds)End rpmdb : 420:d04a95c25d4526ef87598f0dcaec66d3f99b98d4User : rootReturn-Code : SuccessCommand Line : update gitTransaction performed with: Installed rpm-4.8.0-55.el6.x86_64 @base Installed yum-3.2.29-81.el6.centos.noarch @base Installed yum-plugin-fastestmirror-1.1.30-40.el6.noarch @base Installed yum-presto-0.6.2-1.el6.noarch @anaconda-CentOS-201207061011.x86_64/6.3Packages Altered: Updated git-1.7.1-8.el6.x86_64 @base Update 1.7.1-9.el6_9.x86_64 @updates Updated perl-Git-1.7.1-8.el6.noarch @base Update 1.7.1-9.el6_9.noarch @updateshistory info
運行下面命令來回滾 git
包到上一個版本。
# yum history undo 13Loaded plugins: fastestmirror, prestoUndoing transaction 53, from Fri Aug 18 13:30:52 2017 Updated git-1.7.1-8.el6.x86_64 @base Update 1.7.1-9.el6_9.x86_64 @updates Updated perl-Git-1.7.1-8.el6.noarch @base Update 1.7.1-9.el6_9.noarch @updatesLoading mirror speeds from cached hostfile * base: repos.lax.quadranet.com * epel: fedora.mirrors.pair.com * extras: repo1.dal.innoscale.net * updates: mirror.vtti.vt.eduResolving Dependencies--> Running transaction check---> Package git.x86_64 0:1.7.1-8.el6 will be a downgrade---> Package git.x86_64 0:1.7.1-9.el6_9 will be erased---> Package perl-Git.noarch 0:1.7.1-8.el6 will be a downgrade---> Package perl-Git.noarch 0:1.7.1-9.el6_9 will be erased--> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size=================================================================================================Downgrading: git x86_64 1.7.1-8.el6 base 4.6 M perl-Git noarch 1.7.1-8.el6 base 29 k Transaction Summary=================================================================================================Downgrade 2 Package(s) Total download size: 4.6 MIs this ok [y/N]: yDownloading Packages:Setting up and reading Presto delta metadataProcessing delta metadataPackage(s) data still to download: 4.6 M(1/2): git-1.7.1-8.el6.x86_64.rpm | 4.6 MB 00:00(2/2): perl-Git-1.7.1-8.el6.noarch.rpm | 29 kB 00:00-------------------------------------------------------------------------------------------------Total 3.4 MB/s | 4.6 MB 00:01Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Installing : perl-Git-1.7.1-8.el6.noarch 1/4 Installing : git-1.7.1-8.el6.x86_64 2/4 Cleanup : perl-Git-1.7.1-9.el6_9.noarch 3/4 Cleanup : git-1.7.1-9.el6_9.x86_64 4/4 Verifying : git-1.7.1-8.el6.x86_64 1/4 Verifying : perl-Git-1.7.1-8.el6.noarch 2/4 Verifying : git-1.7.1-9.el6_9.x86_64 3/4 Verifying : perl-Git-1.7.1-9.el6_9.noarch 4/4 Removed: git.x86_64 0:1.7.1-9.el6_9 perl-Git.noarch 0:1.7.1-9.el6_9 Installed: git.x86_64 0:1.7.1-8.el6 perl-Git.noarch 0:1.7.1-8.el6 Complete!
回滾后,使用下面命令來檢查降級包的版本。
# yum list git或# rpm -q gitgit-1.7.1-8.el6.x86_64
此外,我們也可以使用 YUM downgrade
命令回滾升級。
# yum downgrade git-1.7.1-8.el6 perl-Git-1.7.1-8.el6Loaded plugins: search-disabled-repos, security, ulninfoSetting up Downgrade ProcessResolving Dependencies--> Running transaction check---> Package git.x86_64 0:1.7.1-8.el6 will be a downgrade---> Package git.x86_64 0:1.7.1-9.el6_9 will be erased---> Package perl-Git.noarch 0:1.7.1-8.el6 will be a downgrade---> Package perl-Git.noarch 0:1.7.1-9.el6_9 will be erased--> Finished Dependency Resolution Dependencies Resolved ================================================================================================= Package Arch Version Repository Size=================================================================================================Downgrading: git x86_64 1.7.1-8.el6 base 4.6 M perl-Git noarch 1.7.1-8.el6 base 29 k Transaction Summary=================================================================================================Downgrade 2 Package(s) Total download size: 4.6 MIs this ok [y/N]: yDownloading Packages:(1/2): git-1.7.1-8.el6.x86_64.rpm | 4.6 MB 00:00(2/2): perl-Git-1.7.1-8.el6.noarch.rpm | 28 kB 00:00-------------------------------------------------------------------------------------------------Total 3.7 MB/s | 4.6 MB 00:01Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Installing : perl-Git-1.7.1-8.el6.noarch 1/4 Installing : git-1.7.1-8.el6.x86_64 2/4 Cleanup : perl-Git-1.7.1-9.el6_9.noarch 3/4 Cleanup : git-1.7.1-9.el6_9.x86_64 4/4 Verifying : git-1.7.1-8.el6.x86_64 1/4 Verifying : perl-Git-1.7.1-8.el6.noarch 2/4 Verifying : git-1.7.1-9.el6_9.x86_64 3/4 Verifying : perl-Git-1.7.1-9.el6_9.noarch 4/4 Removed: git.x86_64 0:1.7.1-9.el6_9 perl-Git.noarch 0:1.7.1-9.el6_9 Installed: git.x86_64 0:1.7.1-8.el6 perl-Git.noarch 0:1.7.1-8.el6 Complete!
注意: 你也需要降級依賴包,否則它會刪掉當前版本的依賴包而不是對依賴包做降級,因為 downgrade
命令無法處理依賴關系。
命令是一樣的,只需要將包管理器名稱從 yum
改成 dnf
就行了。
# dnf list git# dnf history# dnf history info# dnf history undo# dnf list git# dnf downgrade git-1.7.1-8.el6 perl-Git-1.7.1-8.el6
關于在RHEL/CentOS系統上使用YUM history命令回滾升級操作是怎樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。