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

印刷ビューの終了

更新: 2016 年 11 月
 
 

パッケージの再発行

IPS を使用すると、既存のパッケージを、最初にそのパッケージを発行していなくても、変更を加えて再発行することが簡単にできます。また、pkg update がユーザーの期待どおりに機能し続けるように、変更済みパッケージの新しいバージョンを再発行することもできます。

パッケージを変更して再発行するには、次の手順を使用します。

  1. pkgrecv(1) を使用して、再発行するパッケージを指定のディレクトリに raw 形式でダウンロードします。すべてのファイルにはそのハッシュ値で名前が付けられ、マニフェストには manifest という名前が付けられます。必要なプロキシ構成を http_proxy 環境変数に忘れずに設定してください。

  2. pkgmogrify(1) を使用して、マニフェストに対して必要な変更を行います。生成されたマニフェストに必要なメタデータを追加するおよびプログラムによるパッケージマニフェストの変更を参照してください。

    • 発行中に混乱が起きないように、内部パッケージの FMRI からタイムスタンプを削除します。

    • すべての署名アクションを削除します。

  3. pkglint(1) を使用して結果となるパッケージを検証します。

  4. pkgsend(1) を使用してパッケージを再発行します。再発行によって存在している署名がパッケージから取り除かれ、pkg.fmri によって指定されたタイムスタンプが無視されます。警告メッセージを防ぐには、pkgmogrify の手順で署名アクションを削除します。

    パッケージの元のソースに発行する権限がない場合は、pkgrepo(1) を使用してリポジトリを作成したあとで、次のコマンドを使用して、パブリッシャー検索順で元のパブリッシャーの前に新しいパブリッシャーを設定します。

    $ pkg set-publisher --search-before=original_publisher new_publisher
  5. 必要に応じて、pkgsign(1) を使用してパッケージに署名します。クライアントのキャッシュ問題を防ぐには、テストの場合であっても、パッケージをインストールする前にパッケージに署名します。IPS パッケージの署名を参照してください。