Oracle® Solaris 11.2 ソフトウェアの追加と更新

印刷ビューの終了

更新: 2014 年 7 月
 
 

パッケージの検証と検証エラーの修正

イメージ内のパッケージのインストールを検証するには、pkg verify コマンドを使用します。関連するパブリッシャーの現在の署名ポリシーが ignore でない場合、各パッケージの署名がポリシーに基づいて検証されます。署名ポリシーが適用されるしくみについては、署名付きパッケージのイメージプロパティーを参照してください。インストール済みパッケージの内容は、独自の内容解析に基づいて検証されるため、ほかのプログラムの場合とは異なる結果が返されることがあります。

パッケージ名を指定しない場合、すべてのインストール済みパッケージが検査されます。-v オプションは、インストール済みパッケージごとに少なくとも 1 行の情報メッセージを提供します。次の例には、出力の少量のサンプルのみが表示されています。pkg/depot パッケージのインストールにエラーがあります。

$ pkg verify -v
PACKAGE                                                                 STATUS
pkg://solaris/archiver/gnu-tar                                              OK
pkg://solaris/audio/audio-utilities                                         OK
pkg://solaris/benchmark/x11perf                                             OK
...
pkg://solaris/package/pkg/depot                                          ERROR
        dir: var/cache/pkg/depot
                Group: 'pkg5srv (97)' should be 'bin (2)'
        file: var/log/pkg/depot/access_log
                editable file has been changed
        file: var/log/pkg/depot/error_log
                editable file has been changed
...
pkg://solaris/security/sudo                                                 OK
        file: etc/sudoers
                editable file has been changed
...
pkg://solaris/x11/xlock                                                     OK
pkg://solaris/x11/xmag                                                      OK
pkg://solaris/x11/xvidtune                                                  OK

pkg verify コマンドで報告されたパッケージエラーを修正するには、pkg fix コマンドを使用します。

pkg verify の出力には、インストールされた sudo パッケージのコンポーネントはパッケージされたコンポーネントと異なるということが表示されますが、これらの相違点は検証エラーとして報告されません。pkg fix は変更を行いません。/etc/sudoers ファイルは置換されません。

$ pkg fix pkg://solaris/security/sudo
No repairs for this image.

/etc/sudoers ファイルを削除すると、検証は失敗し、pkg fix によってファイルが置換されます。

$ pkg fix pkg://solaris/security/sudo
Verifying: pkg://solaris/security/sudo                          ERROR
        file: etc/sudoers
                Missing: regular file does not exist
Created ZFS snapshot: 2014-03-13-22:05:42
Repairing: pkg://solaris/security/sudo
Creating Plan (Evaluating mediators): 

DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                1/1           1/1      0.0/0.0  990B/s

PHASE                                          ITEMS
Updating modified actions                        1/1
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done

1 つのファイルをダウンロードし、1 つのアクション (file アクション) を変更したという記述が示すように、欠落したファイルのみが置換されます。その他の sudo パッケージ内容は影響を受けていません。修復を実行する前に、操作によって現在のインストールのスナップショットが保存されています。pkg fix 出力の「Created ZFS snapshot」の行を参照してください。修復は現在のイメージ内で実行されました。

$ zfs list -r rpool/ROOT/s11
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
rpool/ROOT/s11                      16.3G  22.5G  26.1G  /
rpool/ROOT/s11@2014-03-13-23:52:19   249M      -  26.1G  -

pkg verify の出力は、インストールされている pkg/depot パッケージ内のディレクトリの所有権にエラーがあることを示しています。pkg fix の出力は、「Verifying」セクションにのみエラーを表示しています。パッケージ化されたコンポーネントとのほかの相違点は表示されません。

$ ls -ld /var/cache/pkg/depot
drwxr-xr-x   3 pkg5srv  pkg5srv        3 Dec  2 19:47 /var/cache/pkg/depot/
$ pkg fix pkg://solaris/package/pkg/depot
Verifying: pkg://solaris/package/pkg/depot                      ERROR
        dir: var/cache/pkg/depot
                Group: 'pkg5srv (97)' should be 'bin (2)'
Created ZFS snapshot: 2014-03-13-22:18:52
Repairing: pkg://solaris/package/pkg/depot
Creating Plan (Evaluating mediators): 

PHASE                                          ITEMS
Updating modified actions                        1/1
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done

次の出力は、エラーのみが修正されたことを示します。インストールされたコンポーネントとパッケージ化されたコンポーネントのその他の相違点は、そのまま残っています。

$ ls -ld /var/cache/pkg/depot
drwxr-xr-x   3 pkg5srv  bin            3 Dec  2 19:47 /var/cache/pkg/depot/
$ pkg verify -v pkg://solaris/package/pkg/depot
PACKAGE                                                                 STATUS
pkg://solaris/package/pkg/depot                                             OK
        file: var/log/pkg/depot/access_log
                editable file has been changed
        file: var/log/pkg/depot/error_log
                editable file has been changed