千家信息网

在RHEL/CentOS系统上使用YUM history命令回滚升级操作是怎样的

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,在RHEL/CentOS系统上使用YUM history命令回滚升级操作是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。为服务
千家信息网最后更新 2026年11月02日在RHEL/CentOS系统上使用YUM history命令回滚升级操作是怎样的

在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 history 命令回滚升级操作

首先,使用下面命令获取 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 命令回滚升级。

# 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 命令无法处理依赖关系。

至于 Fedora 用户

命令是一样的,只需要将包管理器名称从 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命令回滚升级操作是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

命令 升级 系统 版本 软件 软件包 问题 管理 运行 信息 备份 状态 补丁 安全 成功 建议 情况 更多 用户 管理员 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会毛军 科技金融是不是互联网金融 朗新科技与工业互联网 金融科技 互联网金融 广州善班互联网科技 互联网新科技动漫ppt素材 乌鲁木齐新华智原互联网科技学校 洛阳共同富裕互联网科技有限公司 科技赋能视角下互联网保险发展 华中科技大学互联网的牛人 工业互联网山东科技大学 城市宝互联网科技有限公司 互联网科技快讯热点 互联网科技年终奖 互联网安防科技感 新氧科技和美国互联网有关系吗 北京互联网科技类企业分布 北京天晋互联网科技有限公司 北京品多多互联网科技有限公司 伍佰万互联网科技是干嘛的 互联网科技工作委员会毛军 中国互联网科技工作委员会毛军 互联网医疗科技 远拓互联网科技 上海亿帐通互联网科技 语蝶互联网科技有限公司 智帮互联网科技公司最近动向 富国互联网金融科技混合基金 图游互联网科技 科技发展第三阶段互联网时代
0