公式ドキュメント を読んでみましょう:
dnf history rollback <transaction-spec>
指定したトランザクションの後に実行されたすべてのトランザクションを元に戻します。 RPMDBの現在の状態が原因でトランザクションを元に戻すことができない場合は、トランザクションを元に戻さないでください。
強調は私のものです。したがって、このコマンドはundo
コマンドを参照します。さて、元に戻すに関するドキュメントを読んでみましょう:
dnf history undo <transaction-spec>
指定されたトランザクションで実行されるすべての操作とは逆の操作を実行します。 RPMDBの現在の状態が原因で操作を取り消すことができない場合は、操作を取り消さないでください。
前者は複数のトランザクションを取り消すことができ、後者は1つしか取り消せないことを除いて、これら2つのコマンドは同じことをするようです。
この理解は正しいですか?(私はの解釈の観点からではなく、実際の経験からの回答に感謝しますマニュアル、私は推測ではなく事実に興味があります。)
コンテキスト:dnf upgrade -y
を実行してからいくつかのテストを実行し、テストが失敗した場合はdnfの変更を元に戻すスクリプトを作成する必要があります。これを達成するための最良の方法を探しています。
undo
はその特定のトランザクションのみを取り消しますが、rollback
はすべてを取り消しますbetweenそのトランザクションとシステムの現在の状態。
例:htop
をインストールしてから、ncdu
とglances
をインストールし、翌日にmc
をインストールします。
後でhtopのインストールを元に戻したいので、元に戻す機能を使用してhtopのインストールを元に戻そうとしますが、後でインストールした他のプログラムはそのままにしておきます。
htop
をインストールしたトランザクションにロールバックした場合は、ncdu
、glances
、およびmc
のインストールを取り消す代わりに、htop
。