为服务器打补丁是 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),这会导致系统处于不稳定的状态
让我们先来看看系统上有哪些包可以升级,然后挑选出一些包来做实验。
#yumupdate
Loadedplugins:fastestmirror,security
SettingupUpdateProcess
Loadingmirror speedsfromcached hostfile
epel/metalink|12kB00:00
*epel:mirror.csclub.uwaterloo.ca
base|3.7kB00:00
dockerrepo|2.9kB00:00
draios|2.9kB00:00
draios/primary_db|13kB00:00
epel|4.3kB00:00
epel/primary_db|5.9MB00:00
extras|3.4kB00:00
updates|3.4kB00:00
updates/primary_db|2.5MB00:00
ResolvingDependencies
-->Runningtransaction check
--->Packagegit.x86_640:1.7.1-8.el6will be updated
--->Packagegit.x86_640:1.7.1-9.el6_9will be an update
--->Packagehttpd.x86_640:2.2.15-60.el6.centos.4will be updated
--->Packagehttpd.x86_640:2.2.15-60.el6.centos.5will be an update
--->Packagehttpd-tools.x86_640:2.2.15-60.el6.centos.4will be updated
--->Packagehttpd-tools.x86_640:2.2.15-60.el6.centos.5will be an update
--->Packageperl-Git.noarch0:1.7.1-8.el6will be updated
--->Packageperl-Git.noarch0:1.7.1-9.el6_9will be an update
-->FinishedDependencyResolution
DependenciesResolved
=================================================================================================
PackageArchVersionRepositorySize
=================================================================================================
Updating:
gitx86_641.7.1-9.el6_9updates4.6M
httpd x86_642.2.15-60.el6.centos.5updates836k
httpd-tools x86_642.2.15-60.el6.centos.5updates80k
perl-Gitnoarch1.7.1-9.el6_9updates29k
TransactionSummary
===========================