Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.3. トランザクション履歴の活用

yum history コマンドを使用すると、Yum トランザクションのタイムライン、トランザクションの発生日時、影響を受けたパッケージ数、トランザクション成功の有無、RPM データベースがトランザクション間で変更されたかどうかなどに関する情報を確認できます。さらに、このコマンドを使用すると、特定のトランザクションを元に戻す、またはやり直すことが可能です。

8.3.1. トランザクションの一覧表示

最近発生した 20 件のトランザクションを一覧表示するには、root で引数なしで yum history を実行するか、シェルプロンプトで以下を入力します。
yum history list
すべてのトランザクションを表示するには、all のキーワードを追加します。
yum history list all
特定の範囲内のトランザクションのみを表示したい場合は、以下の形式でコマンドを使用します。
yum history list start_id..end_id
特定のパッケージに関するトランザクションのみを一覧表示することもできます。そのためには、パッケージ名か glob 表現を付けてコマンドを実行します。
yum history list glob_expression
たとえば、最初の 5 つのトランザクションのリストは以下のようになります。
~]# yum history list 1..5
Loaded plugins: product-id, refresh-packagekit, subscription-manager
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     5 | Jaromir ... <jhradilek>  | 2011-07-29 15:33 | Install        |    1
     4 | Jaromir ... <jhradilek>  | 2011-07-21 15:10 | Install        |    1
     3 | Jaromir ... <jhradilek>  | 2011-07-16 15:27 | I, U           |   73
     2 | System <unset>           | 2011-07-16 15:19 | Update         |    1
     1 | System <unset>           | 2011-07-16 14:38 | Install        | 1106
history list
yum history list コマンドのすべての形式で、以下のコラムで構成される各行を含む表形式出力を生成します。
  • ID - 特定のトランザクションを識別する整数値です。
  • Login user - トランザクションが開始したログインセッションのユーザー名。この情報は、通常 Full Name <username> 形式で表示されます。ユーザーが実行しなかったトランザクション(システムの自動更新など)については、代わりに System <unset> が使用されます。
  • Date and time - トランザクションが発生した日時。
  • Action(s) - 表8.1「Action フィールドの値」 の説明通りに、トランザクション中に実行されたアクションのリスト。
  • Altered - トランザクションによって影響を受けるパッケージの数。場合によっては 表8.2「Altered フィールドの値」 で説明されているように、追加情報が続きます。

表8.1 Action フィールドの値

Action 省略形 詳細
Downgrade D 1 つ以上のパッケージが旧バージョンにダウングレードされました。
Erase E 1 つ以上のパッケージが削除されました。
Install I 1 つ以上の新しいパッケージがインストールされました。
Obsoleting O 1 つ以上のパッケージが廃止として記録されました。
Reinstall -R 1 つ以上のパッケージが再インストールされました。
Update U 1 つ以上のパッケージが新しいバージョンに更新されました。

表8.2 Altered フィールドの値

記号 詳細
< トランザクションが終了する前に、rpmdb データベースが Yum 以外で変更されました。
> トランザクションが終了した後に、rpmdb データベースが Yum 以外で変更されました。
* トランザクションは失敗して終了しました。
# トランザクションは正常に終了しましたが、yum はゼロ以外の終了コードを返しました。
E トランザクションは正常に終了しましたが、エラーまたは警告が表示されました。
%P トランザクションは正常に終了しましたが、rpmdb データベースに問題がすでに存在します。
s トランザクションは正常に終了しましたが、--skip-broken コマンドラインオプションが指定され、特定のパッケージが省略されました。
Yum を使用すると、過去に発生したすべてのトランザクションのサマリーを表示できます。これを行うには、root で以下の形式のコマンドを実行します。
yum history summary
特定の範囲内でのトランザクションのみを表示するには、以下を入力します。
yum history summary start_id..end_id
yum history list コマンドと同様に、パッケージ名または glob 表現を指定することで、特定のパッケージに関するトランザクションのサマリーを表示できます。
yum history summary glob_expression
たとえば、上記で表示されるトランザクション履歴の概要は以下のようになります。
~]# yum history summary 1..5
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Login user                 | Time                | Action(s)        | Altered
-------------------------------------------------------------------------------
Jaromir ... <jhradilek>    | Last day            | Install          |        1
Jaromir ... <jhradilek>    | Last week           | Install          |        1
Jaromir ... <jhradilek>    | Last 2 weeks        | I, U             |       73
System <unset>             | Last 2 weeks        | I, U             |     1107
history summary
yum history summary コマンドのすべての形式で、yum history list の出力に似た、簡略化された表形式出力を生成します。
上記のように、yum history list および yum history summary の両方がトランザクション向けに設計されていますが、特定のパッケージに関連するトランザクションのみを表示できますが、パッケージバージョンなどの重要な詳細は表示されません。パッケージに関連するトランザクションを一覧表示するには、root で以下のコマンドを実行します。
yum history package-list glob_expression
たとえば、subscription-manager および関連するパッケージの履歴を追跡するには、シェルプロンプトで以下を入力します。
~]# yum history package-list subscription-manager\*
Loaded plugins: product-id, refresh-packagekit, subscription-manager
ID     | Action(s)      | Package
-------------------------------------------------------------------------------
     3 | Updated        | subscription-manager-0.95.11-1.el6.x86_64
     3 | Update         |                      0.95.17-1.el6_1.x86_64
     3 | Updated        | subscription-manager-firstboot-0.95.11-1.el6.x86_64
     3 | Update         |                                0.95.17-1.el6_1.x86_64
     3 | Updated        | subscription-manager-gnome-0.95.11-1.el6.x86_64
     3 | Update         |                            0.95.17-1.el6_1.x86_64
     1 | Install        | subscription-manager-0.95.11-1.el6.x86_64
     1 | Install        | subscription-manager-firstboot-0.95.11-1.el6.x86_64
     1 | Install        | subscription-manager-gnome-0.95.11-1.el6.x86_64
history package-list
この例では、初期システムのインストール時に、subscription-managersubscription-manager-firstboot、および subscription-manager-gnome の 3 つのパッケージがインストールされています。3 つ目のトランザクションでは、これらのパッケージはすべてバージョン 0.95.11 からバージョン 0.95.17 に更新されました。