yum history
“yum history list”命令在不带任何参数的情况下运行时会产生类似于下图所示的输出。
“yum history”或者“yum history list”默认显示最近 20 个 yum 交易。
# yum history list
其中:
ID :唯一标识一个 yum 事务。
命令行 :
日期和时间:交易的日期和时间。
Action(s) :在事务中执行的操作,如安装、更新等。
详细列表如下。
Action | Abbreviation | Description |
---|---|---|
Downgrade | D | At least one package has been downgraded to an older version. |
Erase | E | At least one package has been removed. |
Install | I | At least one new package has been installed. |
Obsoleting | O | At least one package has been marked as obsolete. |
Reinstall | R | At least one package has been reinstalled. |
Update | U | At least one package has been updated to a newer version. |
Action | 缩写 | 描述 |
---|---|---|
Downgrade | D | 至少有一个软件包已降级到旧版本。 |
Erase | E | 至少删除了一个包。 |
Install | I | 至少安装了一个新软件包。 |
Obsoleting | O | 至少有一个包被标记为过时。 |
Reinstall | R | 至少已重新安装了一个软件包。 |
Update | U | 至少有一个软件包已更新到较新的版本。 |
Altered : 受事务影响的包数和添加信息,例如 rpmdb 数据库是否在事务之后更改等。
详细列表如下。
Symbol | 描述 |
---|---|
< | 在事务完成之前,rpmdb 数据库在 Yum 之外发生了变化。 |
> | 交易完成后,rpmdb 数据库在 Yum 之外发生了变化。 |
* | 交易未能完成。 |
# | 交易成功完成,但 yum 返回了非零退出代码。 |
E | 事务成功完成,但显示错误或者警告。 |
P | 事务成功完成,但 rpmdb 数据库中已经存在问题。 |
s | 事务成功完成,但使用了 -skip-broken 命令行选项并跳过了某些包。 |
要显示所有交易,请使用 all 选项。
# yum history list all
yum 的“yum history”功能是 Linux 中一个经常被忽视但非常强大的实用程序。
它可用于将 yum 事务回滚/重做/撤消到一切正常的状态。
将 yum 事务回滚到某个点
使用 yum history 命令,我们可以回滚所有事务,直到特定事务 ID。
例如,如果我们指定事务 ID 为 16,则将回滚从最新到事务 ID 16 的所有事务。
例如 :
# yum history rollback 16
有关特定交易的信息
如果我们知道 yum 事务的事务 ID,则可以使用以下命令获得详细视图。
# yum history info 1
例如 :
我们还可以在 yum history 命令中使用包名称。
例如 :
# yum history info vsftpd
上面的命令将显示所有事务,如安装、更新、删除 vsftpd 包。
我们还可以使用摘要选项获取特定软件包的交易历史摘要。
例如 :
回滚或者重做 yum 事务
我们可以使用以下语法命令撤消特定的 yum 事务:
# yum history rollback [transaction_ID]
例如:
同样,我们也可以重做 yum 事务。
例如 :
# yum history redo [transaction ID]
我们将使用下图所示的命令重做移除的 sysstat 包移除。
在我们指定事务之前,重做子命令还可以采用一些可选参数:
force-reinstall - 重新安装在该事务中安装的所有软件包(通过 yum install、upgrade 或者 downgrade)。
force-remove - 删除所有更新或者降级的包。