Yum 是 RHEL/CentOS 的一个基于 rpm 的互动式高阶包管理器,使用者可以用它来安装新的站群软件包、解除安装或清除旧的/不需要的站群软件包。它可以自动执行系统更新,并执行依赖分析,对已安装的或可用的站群软件包进行查询等等。
在本文中,我们将解释如何检视 Yum 事务的历史记录,以便于了解有关安装的站群软件包以及从系统中所解除安装/清除站群软件包的资讯。
以下是一些如何使用 Yum 历史命令的示例。
检视完整的 Yum 历史
要检视 Yum 事务完整的历史记录,我们可以执行以下命令,然后将显示:事务 ID 、执行特定操作的使用者、操作发生的日期和时间、实际操作以及任何错误的附加资讯与操作:
# yum history
检视 Yum 历史
使用 Yum 查询站群软件包资讯
history 的子命令:info/list/summary 可以将事务 ID 或包名作为引数。此外,list 子命令可以加上特殊的引数,all 表示所有的事务。
执行以下命令检视先前的历史:
# yum history list all
并且,你可以使用下面的 info 命令检视涉及指定站群软件包的事务详情,例如 httpd:
# yum history info httpd
Yum – 查询站群软件包资讯
发出以下命令可以获得包含 httpd 站群软件包的事务的摘要:
# yum history summary httpd
Yum – 查询站群软件包的摘要
还可以使用事务的 ID 来查询,以下命令会显示 ID 为 15 的事务的详情。
# yum history info 15
Yum – 使用 ID 查询站群软件包资讯
使用 yum history 查询站群软件包事务资讯
有一些用于列印某个或多个站群软件包事务详情的子命令。我们可以使用 package-list 或 package_info 检视关于 httpd 的更多资讯,例如:
# yum history package-list httpd
或
# yum history package-info httpd
Yum – 查询站群软件包事务资讯
要得到多个站群软件包的记录,我们可以执行:
# yum history package-list httpd epel-release
或
# yum history packages-list httpd epel-release
Yum – 查询多个站群软件包的资讯
使用 Yum 回滚站群软件包
此外,还有一些 history 的子命令可以让我们撤销/重做/回滚事务。
undo – 会撤销一个指定的事务。
redo – 重复一次指定的事务。
rollback – 撤销指定事务之后的所有事务。
它们采用单个事务 id 或关键字 last 和从最后一个事务开始的偏移量。
例如,假设我们已经做了 60 个事务,last 是指事务 60,last-4 指向事务 56 。
以上子命令是如下工作的:如果我们有 5 个事务——V,W,X,Y 和 Z,其中分别是安装各个站群软件包的。
# yum history undo 2 #将删除站群软件包 W
# yum history redo 2 #将重新安装站群软件包 W
# yum history rollback 2 #将删除站群软件包 X 、 Y 和 Z
在下面的示例中,事务 2 是一个更新操作,如下所示,以下 redo 命令将重复事务 2 直到所有站群软件包到更新到当前时间的最新版本:
# yum history | grep -w “2”
Yum – 查询站群软件包事务的 ID
# yum history redo 2
用 Yum 重新更新站群软件包
redo 子命令同样可以在我们指定事务之前加上一些可选的引数:
force-reinstall – 重新安装所有在此事务中安装的站群软件包(通过 yum install 、 upgrade 或 downgrade)。
force-remove – 移除所有已经更新或回滚的站群软件包。
# yum history redo force-reinstall 16
Yum – 强制安装站群软件包
查询 Yum 历史资料库和来源资讯
这些子命令为我们提供有关历史记录资料库和其它资讯来源的资讯:
addon-info – 提供更多的资讯来源。
stats – 显示当前历史资料库的统计资讯。
sync – 使我们能够更改为所有已安装站群软件包储存的 rpmdb/yumdb 资料。
看一下以下的命令的子命令实际上是怎样工作的:
# yum history addon-info
# yum history stats
# yum history sync
使用 new 子命令设定新的历史档案:
# yum history new
我们可以在 yum 手册页找到关于 Yum history 命令和其它几个命令的完整资讯:
# man yum