web-dev-qa-db-ja.com

「dnf履歴のロールバック」と「dnf履歴の取り消し」の違いは何ですか?

公式ドキュメント を読んでみましょう:

dnf history rollback <transaction-spec>指定したトランザクションの後に実行されたすべてのトランザクションを元に戻します。 RPMDBの現在の状態が原因でトランザクションを元に戻すことができない場合は、トランザクションを元に戻さないでください。

強調は私のものです。したがって、このコマンドはundoコマンドを参照します。さて、元に戻すに関するドキュメントを読んでみましょう:

dnf history undo <transaction-spec>指定されたトランザクションで実行されるすべての操作とは逆の操作を実行します。 RPMDBの現在の状態が原因で操作を取り消すことができない場合は、操作を取り消さないでください。

前者は複数のトランザクションを取り消すことができ、後者は1つしか取り消せないことを除いて、これら2つのコマンドは同じことをするようです。

この理解は正しいですか?(私はの解釈の観点からではなく、実際の経験からの回答に感謝しますマニュアル、私は推測ではなく事実に興味があります。)

コンテキスト:dnf upgrade -yを実行してからいくつかのテストを実行し、テストが失敗した場合はdnfの変更を元に戻すスクリプトを作成する必要があります。これを達成するための最良の方法を探しています。

15
Andrew Savinykh

undoはその特定のトランザクションのみを取り消しますが、rollbackはすべてを取り消しますbetweenそのトランザクションとシステムの現在の状態。

例:htopをインストールしてから、ncduglancesをインストールし、翌日にmcをインストールします。

後でhtopのインストールを元に戻したいので、元に戻す機能を使用してhtopのインストールを元に戻そうとしますが、後でインストールした他のプログラムはそのままにしておきます。

htopをインストールしたトランザクションにロールバックした場合は、ncduglances、およびmcのインストールを取り消す代わりに、htop

18
Mio Rin