Oracle® Solaris 11.2 での Image Packaging System を使用したソフトウェアのパッケージ化と配布

印刷ビューの終了

更新: 2014 年 7 月
 
 

パッケージを検証する

発行前の最後の手順は、マニフェストに対して pkglint(1) を実行して、発行およびテスト前に特定できるエラーを見つけることです。pkglint で見つけられるエラーの中には、発行時またはユーザーがパッケージのインストールを試みたときに見つかるものもありますが、当然ながらパッケージオーサリングプロセスでできるだけ早くエラーを特定するのが望ましいことです。

pkglint で報告されるエラーの例には次があります。

  • 配布するファイルがすでに別のパッケージで所有されている。

  • ディレクトリのような、共有された参照カウントアクションのメタデータに違いがある。このエラーの例については、パッケージマニフェストを生成するの終わりで説明されています。

pkglint が実行するチェックの完全なリストを表示するには、pkglint -L コマンドを使用します。特定のチェックを有効化、無効化、および省略する方法の詳細な情報は、pkglint(1) のマニュアルページに記載されています。このマニュアルページには、追加のチェックを実行するために pkglint を拡張する方法も詳述されています。

pkglint は次のいずれかのモードで実行できます。

  • パッケージマニフェストに対して直接。通常、マニフェストの有効性をすばやくチェックするためには、このモードで十分です。

  • パッケージマニフェストに対して (パッケージリポジトリも参照)。このモードは、リポジトリへの発行前に少なくとも 1 回は使用してください。

    リポジトリを参照することで、pkglint は追加のチェックを行なって、パッケージがそのリポジトリ内のほかのパッケージとうまく相互作用することを確認できます。

次の出力には、サンプルマニフェストの問題が示されています。

$ pkglint mypkg.p5m.4.res
Lint engine setup...
Starting lint run...
WARNING pkglint.action005.1       obsolete dependency check skipped: unable
to find dependency pkg:/system/library@0.5.11-0.175.2.0.0.18.0 for
pkg:/mypkg@1.0,5.11-0

この警告はこの例で許容されます。pkglint.action005.1 警告は、pkglint が、このサンプルパッケージが依存している pkg:/system/library@0.5.11-0.175.2.0.0.18.0 と呼ばれるパッケージを見つけられなかったことを伝えています。この依存関係パッケージはパッケージリポジトリ内にあり、pkglint が引数にマニフェストファイルのみを指定して呼び出されたため、見つかりませんでした。

次のコマンドでは、-r オプションによって依存関係パッケージを含むリポジトリが参照されます。-c オプションは、lint リポジトリおよび参照リポジトリからパッケージのメタデータをキャッシュするために使用されるローカルディレクトリを指定します。

$ pkglint -c ./solaris-reference -r http://pkg.oracle.com/solaris/release mypkg.p5m.4.res