Product SiteDocumentation Site

4.2.6. 処理とトランザクションの履歴

yum history コマンドにより、ユーザーが時系列の Yum トランザクション、それらが発生した日時、影響されたパッケージの数、トランザクションが成功したか中断されたかどうか、およびトランザクション中に RPM データベースが変更されたかどうか、に関する情報を確認できます。加えて、このコマンドは特定のトランザクションを元に戻したり、再実行したりするために使用できます。

トランザクションの一覧

最新のトランザクション20個の一覧を表示するには、rootとして、引数なしで yum history を実行します、またはシェルプロンプトにおいて以下のように入力します:
yum history list
すべてのトランザクションを表示するには、all キーワードを追加します:
yum history list all
与えられた範囲にあるトランザクションのみを表示するには、以下の形式でコマンドを使用します:
yum history list start_id..end_id
特定のパッケージに関するトランザクションのみを一覧表示することもできます。そうするには、パッケージ名またはグロブ表現とともにコマンドを使用します:
yum history list glob_expression
たとえば、以下のように最初の5トランザクションの一覧が表示されます:
~]# yum history list 1..5
Loaded plugins: langpacks, presto, refresh-packagekit
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 コマンドは、以下の列から構成される各行をタブ区切りを生成します:
表4.1 Action(s) フィールドの取り得る値
アクション 略号 説明
Downgrade D 少なくとも1つのパッケージが古いバージョンにダウングレードされました。
Erase E 少なくとも 1 つのパッケージが削除されました。
インストール I 少なくとも 1 つの新規パッケージがインストールされました。
Obsoleting O 少なくとも一つのパッケージに推奨されないという印がついています。
再インストール R 少なくとも 1 つのパッケージを再インストールしました。
アップグレード U 少なくとも 1 つのパッケージを新しいバージョンに更新しました。

表4.2 Altered フィールドの利用可能な値
シンボル 説明
< トランザクションの終了前で、データベース rpmdb が Yum 以外で変更されました。
> トランザクションの終了後、rpmdb データベースが Yum 以外で更新されました
* トランザクションの終了に失敗しました。
# トランザクションの実行に成功しましたが、yum は 0 以外の終了コードを返しました。
E トランザクションの終了に成功しましたが、エラーか警告が表示されました。
P トランザクションが正常に終了しましたが、問題はすでにrpmdb データベースに存在しました。
s トランザクションが正常に終了しました。ただし、--skip-broken コマンドラインオプションが使用され、特定のパッケージがスキップされました。

Yum は過去のトランザクションすべての概要を表示することもできます。そうするには、root として以下の形式でコマンドを実行します:
yum history summary
指定した範囲のトランザクションのみを表示するには、次のように入力します:
yum history summary start_id..end_id
yum history list コマンドと同様に、パッケージ名またはグロブ表現を与えることにより特定のパッケージに関するトランザクションの概要を表示することもできます:
yum history summary glob_expression
たとえば、上に表示されたトランザクション履歴の概要は以下にあるように見えます:
~]# yum history summary 1..5
Loaded plugins: langpacks, presto, refresh-packagekit
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 listyum history summary はどちらもトランザクション指向です。与えられたパッケージに関連するトランザクションのみを表示できますが、パッケージのバージョンのような重要な詳細が不足しています。パッケージの観点からトランザクションを一覧表示するには、以下のコマンドを root として実行します:
yum history package-list glob_expression
たとえば、subscription-manager と関連するパッケージの履歴を追跡するには、シェルプロンプトにおいて以下のように入力します:
~]# yum history package-list subscription-manager\*
Loaded plugins: langpacks, presto, refresh-packagekit
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
この例では、3つのパッケージがシステムの初期インストール中にインストールされました: subscription-manager, subscription-manager-firstboot, および subscription-manager-gnome。3回目のトランザクションにおいて、すべてのパッケージがバージョン 0.95.11 からバージョン 0.95.17 に更新されました。

トランザクションの検証

単一のトランザクションの概要を表示するには、root として yum history summary コマンドを以下の形式で使用します:
yum history summary id
特定のトランザクションを詳細に確認するには、root として以下のコマンドを実行します:
yum history info id
id 引数はオプションです。省略したとき、yum は自動的に最後のトランザクションを使用します。複数のトランザクションを指定するときに、範囲を使用することもできることに注意してください:
yum history info start_id..end_id
以下は、2つのトランザクションのサンプル出力です。それぞれ新規パッケージを1つインストールしています:
~]# yum history info 4..5
Loaded plugins: langpacks, presto, refresh-packagekit
Transaction ID : 4..5
Begin time     : Thu Jul 21 15:10:46 2011
Begin rpmdb    : 1107:0c67c32219c199f92ed8da7572b4c6df64eacd3a
End time       :            15:33:15 2011 (22 minutes)
End rpmdb      : 1109:1171025bd9b6b5f8db30d063598f590f1c1f3242
User           : Jaromir Hradilek <jhradilek>
Return-Code    : Success
Command Line   : install screen
Command Line   : install yum-plugin-fs-snapshot
Transaction performed with:
    Installed     rpm-4.8.0-16.el6.x86_64
    Installed     yum-3.2.29-17.el6.noarch
    Installed     yum-metadata-parser-1.1.2-16.el6.x86_64
Packages Altered:
    Install screen-4.0.3-16.el6.x86_64
    Install yum-plugin-fs-snapshot-1.1.30-6.el6.noarch
history info
トランザクションを実行したときに使用された設定オプションや、どのリポジトリからパッケージがインストールされたか、特定のパッケージがなぜインストールされたか、などのような追加の情報を表示することもできます。特定のトランザクションに対してどの追加の情報が利用可能であるかを決めるには、シェルプロンプトにおいて root として以下のように入力します:
yum history addon-info id
yum history info と同様、id を与えないとき、yum は自動的に最後のトランザクションを使用します。最後のトランザクションを参照する別の方法は last キーワードを使用することです:
yum history addon-info last
たとえば、前の例にある最初のトランザクションに対して、yum history addon-info コマンドは以下のように出力します:
~]# yum history addon-info 4
Loaded plugins: langpacks, presto, refresh-packagekit
Transaction ID: 4
Available additional history information:
  config-main
  config-repos
  saved_tx

history addon-info
この例では、3種類の情報が利用可能です:
選択した形式の追加の情報を表示するには、root として以下のコマンドを実行します:
yum history addon-info id information

トランザクションの復帰および繰り返し

トランザクション履歴の確認のほか、yum history コマンドは選択したトランザクションの復帰および繰り返しをする手段を提供します。トランザクションを復帰するには、シェルプロンプトにおいて以下のコマンドを root として入力します:
yum history undo id
特定のトランザクションを繰り返すには、root として以下のコマンドを実行します:
yum history redo id
どちらのコマンドも、最後に実行したトランザクションを取り消すまたは繰り返すために、last キーワードを受け付けます。
yum history undoyum history redo コマンドはどちらも単にトランザクション中に実行された手順を復帰または繰り返すだけであることに注意してください。トランザクションが新しいパッケージをインストールしているならば、yum history undo コマンドはそれをアンインストールします。逆もまた同様です。可能ならば、このコマンドはすべての更新したパッケージをそれらの前のバージョンにダウングレードしようとしますが、これらの古いパッケージはもはや利用可能ではないかもしれません。もしシステムを更新前の状態に復元できる必要があるならば、「プラグインの説明」において説明されている fs-snapshot プラグインの使用を検討してください。
いくつかの同一システムを管理するとき、Yumはそのうちのどれか1つにおいてトランザクションを実行し、トランザクションの詳細をファイルに保存し、テスト後に同じトランザクションを残りのシステムにおいて同じように繰り返すこともできるようにします。トランザクションの詳細をファイルに保存するには、シェルプロンプトにおいて root として以下のように入力します:
yum -q history addon-info id saved_tx > file_name
一度このファイルを対象システムにコピーすると、root として以下のコマンドを使用することによりトランザクションを繰り返すことができます:
yum load-transaction file_name
しかしながら、ファイルに保存されている rpmdb バージョンは対象システムにおけるバージョンと同一でなければいけません。yum version nogroups コマンドを使用することにより rpmdb のバージョンを確認できます。

新規トランザクション履歴の開始

Yum はトランザクション履歴を単独の SQLite データベースファイルに保存します。新規トランザクション履歴を開始するには、root として以下のコマンドを実行します:
yum history new
これにより、新しい空のデータベースファイルが /var/lib/yum/history/ ディレクトリに作成されます。古いトランザクション履歴は保持されますが、新しいデータベースがディレクトリに存在する限りアクセスできません。