yum の「yum history」機能は、ほとんど見過ごされがちですが、Linux では非常に強力なユーティリティです。 yum トランザクションをすべて正常に機能していた状態にロールバック/やり直し/元に戻すために使用できます。
ヤムの歴史
「yum history list」コマンドを引数なしで実行すると、次のような出力が生成されます。 「yum history」または「yum history list」は、デフォルトで最新の 20 件の yum トランザクションを表示します。
# yum history list
こちら、
ID :yum トランザクションを一意に識別します。
コマンド ライン :
日時 :取引の日時。
アクション :インストール、更新などのトランザクションで実行されるアクション。詳細なリストを以下に示します。
アクション | 略語 | 説明 |
---|---|---|
ダウングレード | D | 少なくとも 1 つのパッケージが古いバージョンにダウングレードされています。 |
消去 | え | 少なくとも 1 つのパッケージが削除されました。 |
インストール | 私 | 少なくとも 1 つの新しいパッケージがインストールされています。 |
時代遅れ | O | 少なくとも 1 つのパッケージが古いものとしてマークされています。 |
再インストール | R | 少なくとも 1 つのパッケージが再インストールされました。 |
更新 | う | 少なくとも 1 つのパッケージが新しいバージョンに更新されました。 |
変更 :トランザクションによって影響を受けたパッケージの数と、rpmdb データベースが以前に変更されたかどうかなどの追加情報は、トランザクション後に表示されます。詳細なリストは以下に示されています。
シンボル | 説明 |
---|---|
< | トランザクションが完了する前に、rpmdb データベースが Yum の外部で変更されました。 |
> | トランザクションが終了した後、rpmdb データベースは Yum の外部で変更されました。 |
* | 取引を完了できませんでした。 |
# | トランザクションは正常に終了しましたが、yum がゼロ以外の終了コードを返しました。 |
日 | トランザクションは正常に終了しましたが、エラーまたは警告が表示されました。 |
P | トランザクションは正常に終了しましたが、rpmdb データベースにすでに問題がありました。 |
トランザクションは正常に終了しましたが、–skip-broken コマンドライン オプションが使用され、特定のパッケージがスキップされました。 |
すべての取引を表示するには、all オプション。
# yum history list all
特定の取引に関する情報
yum トランザクションのトランザクション ID がわかっている場合は、以下のコマンドを使用して詳細を表示できます。
# yum history info 1
例:
yum history コマンドでパッケージ名を使用することもできます。例:
# yum history info vsftpd
上記のコマンドは、パッケージ vsftpd のインストール、更新、削除などのすべてのトランザクションを表示します。
概要を使用して、特定のパッケージの取引履歴の概要を取得することもできます オプション。例:
yum トランザクションをロールバックまたはやり直す
次の構文のコマンドを使用して、特定の yum トランザクションを元に戻すことができます:
# yum history rollback [transaction_ID]
例:
同様に、yum トランザクションをやり直すこともできます。例:
# yum history redo [transaction ID]
下の図に示すコマンドを使用して、削除された sysstat パッケージの削除をやり直します。
redo サブコマンドは、トランザクションを指定する前にいくつかのオプションの引数を取ることもできます:
force-reinstall – そのトランザクションでインストールされたすべてのパッケージを再インストールします (yum インストール、アップグレード、またはダウングレードを介して)。
force-remove – 更新またはダウングレードされたすべてのパッケージを削除します。
yum トランザクションを特定のポイントまでロールバックする
yum history コマンドを使用すると、特定のトランザクション ID まですべてのトランザクションをロールバックできます。たとえば、トランザクション ID 16 を指定すると、最新のトランザクションからトランザクション ID 16 までのすべてのトランザクションがロールバックされます。例:
# yum history rollback 16