“dnf 历史回滚”和“dnf 历史撤销”有什么区别?

And*_*ykh 19 fedora rhel package-management dnf

让我们阅读官方文档

dnf history rollback <transaction-spec> 撤消在指定事务之后执行的所有事务。如果无法撤销任何交易,由于rpmdb中的当前状态,不撤消任何交易。

重点是我的。所以这个命令是指undo命令。好的,让我们阅读有关撤消的文档:

dnf history undo <transaction-spec> 执行与指定事务中执行的所有操作相反的操作。如果由于 RPMDB 的当前状态无法撤消任何操作,请不要撤消任何操作。

听起来这两个命令做同样的事情,只是前者可以撤消多个事务,而后者只能撤消一个。

这种理解是否正确?(我希望从第一手经验中得到答案,而不是从如何解释手册的角度来看,我对事实感兴趣,而不是猜测。)

上下文:我需要编写一个脚本来运行dnf upgrade -y,然后运行一些测试,然后在测试失败时撤消 dnf 更改。我正在寻找实现这一目标的最佳方式。

Mio*_*Rin 23

undo仅撤消该特定事务,同时rollback撤消该事务与系统当前状态之间的所有内容。

示例:您安装htop,然后安装ncduglances,然后是mc第二天。

以后想撤消安装htop,所以使用撤消功能尝试撤消安装htop,但仍保留以后安装的其他程序。

如果您回滚到安装了 的事务htop,您将改为撤消ncdu,glances和的安装mc,同时仍然保留htop