Red Hat Training

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

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

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

9.4.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…

例9.19 最も古いトランザクション 5 件を表示する

yum history list の出力では、最新のトランザクションがリストの上部に表示されます。履歴データベースにある最も古い 5 件のトランザクションに関する情報を表示するには、以下を入力します。

~]# yum history list 1..5
Loaded plugins: langpacks, product-id, subscription-manager
ID   | Login user        | Date and time  | Action(s)   | Altered
-------------------------------------------------------------------------------
   5 | User <user>       | 2013-07-29 15:33 | Install    |  1
   4 | User <user>       | 2013-07-21 15:10 | Install    |  1
   3 | User <user>       | 2013-07-16 15:27 | I, U      |  73
   2 | System <unset>      | 2013-07-16 15:19 | Update     |  1
   1 | System <unset>      | 2013-07-16 14:38 | Install    | 1106
history list

yum history list コマンドのすべての形式で、以下のコラムで構成される各行を含む表形式出力を生成します。

  • ID: 特定のトランザクションを識別する整数値です。
  • Login user: トランザクションが開始したログインセッションのユーザー名。この情報は、通常 Full Name <username> の形式で表示されます。ユーザーが実行しなかったトランザクションに関しては (システムの自動更新など)、代わりに System <unset> が使用されます。
  • Date and time: トランザクションが発生した日時です。
  • action(s ): 表9.1「Action フィールドの値」 の説明に従って、トランザクション中に実行された動作の一覧です。
  • modified: トランザクションの影響を受けるパッケージ数。場合によっては、表9.2「Altered フィールドの値」 の説明に従って追加情報も含まれます。

表9.1 Action フィールドの値

Action省略形詳細

Downgrade

D

1 つ以上のパッケージが旧バージョンにダウングレードされました。

Erase

E

1 つ以上のパッケージが削除されました。

Install

I

1 つ以上の新しいパッケージがインストールされました。

Obsoleting

O

1 つ以上のパッケージが廃止として記録されました。

Reinstall

-R

1 つ以上のパッケージが再インストールされました。

Update

U

1 つ以上のパッケージが新しいバージョンに更新されました。

表9.2 Altered フィールドの値

記号詳細

<

トランザクションが終了する前に、rpmdb データベースが yum 以外で変更されました。

>

トランザクションが終了した後に、rpmdb データベースが yum 以外で変更されました。

*

トランザクションは失敗して終了しました。

#

トランザクションは正常に終了しましたが、yum はゼロ以外の終了コードを返しました。

E

トランザクションは正常に終了しましたが、エラーまたは警告が表示されました。

%P

トランザクションは正常に終了しましたが、rpmdb データベースに問題がすでに存在していました。

s

トランザクションは正常に終了しましたが、--skip-broken コマンドラインオプションが指定され、特定のパッケージが省略されました。

インストール済みパッケージの rpmdb または yumdb データベースのコンテンツを、現在使用されている rpmdb または yumdb データベースと同期するには、以下を入力します。

yum history sync

現在使用している履歴データベースに関する全体的な統計数字を表示するには、以下のコマンドを使用します。

yum history stats

例9.20 yum history stats の出力例

~]# yum history stats
Loaded plugins: langpacks, product-id, subscription-manager
File    : //var/lib/yum/history/history-2012-08-15.sqlite
Size    : 2,766,848
Transactions: 41
Begin time : Wed Aug 15 16:18:25 2012
End time  : Wed Feb 27 14:52:30 2013
Counts   :
 NEVRAC : 2,204
 NEVRA : 2,204
 NA   : 1,759
 NEVR  : 2,204
 rpm DB : 2,204
 yum DB : 2,204
history stats

Yum を使用すると、過去に発生したすべてのトランザクションのサマリーを表示することもできます。root で以下の形式のコマンドを実行します。

yum history summary

特定の範囲内でのトランザクションのみを表示するには、以下を入力します。

yum history summary start_id..end_id

yum history list コマンドと同様に、パッケージの名前または glob 表現を指定することで、特定のパッケージに関するトランザクションのサマリーを表示できます。

yum history summary glob_expression&hellip;

例9.21 最新のトランザクション 5 件のサマリー

~]# yum history summary 1..5
Loaded plugins: langpacks, product-id, 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&hellip;

例9.22 パッケージ履歴の追跡

たとえば、subscription-manager および関連パッケージの履歴を調べるには、シェルプロンプトで以下を入力します。

~]# yum history package-list subscription-manager\*
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
ID   | Action(s)   | Package
-------------------------------------------------------------------------------
   2 | Updated    | subscription-manager-1.13.22-1.el7.x86_64     EE
   2 | Update     |           1.15.9-15.el7.x86_64     EE
   2 | Obsoleted   | subscription-manager-firstboot-1.13.22-1.el7.x86_64 EE
   2 | Updated    | subscription-manager-gui-1.13.22-1.el7.x86_64   EE
   2 | Update     |             1.15.9-15.el7.x86_64   EE
   2 | Obsoleting   | subscription-manager-initial-setup-addon-1.15.9-15.el7.x86_64 EE
   1 | Install    | subscription-manager-1.13.22-1.el7.x86_64
   1 | Install    | subscription-manager-firstboot-1.13.22-1.el7.x86_64
   1 | Install    | subscription-manager-gui-1.13.22-1.el7.x86_64
history package-list

上記の例では、初期のシステムインストール時に subscription-managersubscription-manager-firstbootsubscription-manager-gui の 3 パッケージがインストールされています。3 つ目のトランザクションでは、これらの全パッケージはバージョン 1.10.11 から 1.10.17 に更新されています。