読んでみよう公式文書:
dnf history rollback <transaction-spec>
指定されたトランザクション以降に実行されたすべてのトランザクションをキャンセルします。できない場合元に戻すRPMDBの現在の状態のため、トランザクションを元に戻さないでください。
ポイントは私のものです。したがって、このコマンドはundo
コマンドを参照します。元に戻すためのドキュメントを見てみましょう。
dnf history undo <transaction-spec>
指定されたトランザクションで実行されるすべてのタスクとは反対のタスクを実行します。 RPMDBの現在の状態によってジョブを元に戻せない場合は、ジョブを元に戻さないでください。
前者は複数のトランザクションを元に戻すことができますが、後者は単一のトランザクションのみを元に戻すことができることを除いて、これら2つのコマンドは同じことをするように聞こえます。
この理解は正しいですか?(方法論的な視点ではなく、直接経験した答えが欲しい。あなたは説明しますマニュアル、私は推測ではないという事実に興味があります。 )
コンテキスト:実行するスクリプトを作成し、dnf upgrade -y
いくつかのテストを実行してからリバースdnfの変更テストが失敗した場合。私はこれを達成するための最良の方法を探しています。
答え1
undo
その特定の取引のみをキャンセルし、rollback
すべての取引もキャンセルします。〜サイ取引とシステムの現在の状態です。
例: をインストールhtop
してから、 をインストールncdu
し、glances
翌日mc
。
後でhtopを削除しようとしているので、元に戻す機能を使用してhtopを削除しようとしますが、他のプログラムは後でインストールされたままにします。
マウントされたトランザクションにロールバックするとhtop
、 のマウントが取り消されますが、そのまま保持されます。ncdu
glances
mc
htop