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

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

让我们来读一下官方文档

dnf history rollback <transaction-spec> 撤消指定事务之后执行的所有事务。如果不可能撤消由于 RPMDB 的当前状态而导致的任何事务,请勿撤消任何事务。

重点是我的。所以这个命令指的是undo命令。好吧,我们来看看有关undo的文档:

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

听起来这两个命令执行相同的操作,只不过前者可以撤消多个事务,而后者只能撤消一个事务。

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

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

答案1

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

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

您稍后想要撤消安装 htop,因此您使用撤消功能尝试撤消安装 htop,但仍保留稍后安装的其他程序。

如果回滚到已安装的事务,您将撤消、和htop的安装,同时仍保留.ncduglancesmchtop

相关内容