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

印刷ビューの終了

更新: 2014 年 7 月
 
 

パッケージを発行する

ローカルファイルベースのリポジトリにパッケージを発行します。このリポジトリは、この新しいパッケージの開発およびテスト用のリポジトリです。一般的な使用の目的でリポジトリを作成する場合は、そのリポジトリ用の個別ファイルシステムの作成などの追加手順を含めてください。一般的な使用の目的でのパッケージリポジトリの作成については、Oracle Solaris 11.2 パッケージリポジトリのコピーと作成 を参照してください。

非大域ゾーンを含むパッケージをテストするには、システムリポジトリを介してリポジトリの場所にアクセス可能である必要があります。非大域ゾーン内で pkg publisher または pkg listコマンドを使用して、パッケージがアクセス可能であることを確認します。

pkgrepo(1) コマンドを使用して、システム上にリポジトリを作成します。

$ pkgrepo create my-repository
$ ls my-repository
pkg5.repository

このリポジトリのデフォルトパブリッシャーを設定します。デフォルトパブリッシャーは、リポジトリの publisher/prefix プロパティーの値です。

$ pkgrepo -s my-repository set publisher/prefix=mypublisher

pkgsend publish コマンドを使用して、新しいパッケージを発行します。複数の pkgsend publish プロセスが同じ -s リポジトリに対して同時に発行する場合、パブリッシャーカタログに対する更新は連続して実行する必要があるため、--no-catalog オプションを指定することを推奨します。複数のプロセスが同時にパッケージを発行するときは、--no-catalog オプションを使用しないと、発行のパフォーマンスが大幅に低下する可能性があります。公開の完了後、pkgrepo refresh コマンドを使用してそれぞれのパブリッシャーカタログに新しいパッケージを追加できます。

$ pkgsend -s my-repository publish -d proto mypkg.p5m.4.res
pkg://mypublisher/mypkg@1.0,5.11-0:20130720T005452Z
PUBLISHED

リポジトリのデフォルトパブリッシャーがパッケージ FMRI に適用されている点に注意してください。

新しいリポジトリのアクセス権、内容、および署名が正しいことを確認します。

$ pkgrepo verify -s my-repository

リポジトリを調べるには、pkgrepo および pkg list コマンドを使用できます。

$ pkgrepo info -s my-repository
PUBLISHER   PACKAGES STATUS           UPDATED
mypublisher 1        online           2013-07-20T00:54:52.758591Z
$ pkgrepo list -s my-repository
PUBLISHER   NAME                    0 VERSION
mypublisher mypkg                     1.0,5.11-0:20130720T005452Z
$ pkg list -afv -g my-repository
FMRI                                                     IFO
pkg://mypublisher/mypkg@1.0,5.11-0:20130720T005452Z      ---

HTTP 経由で発行するときには着信パッケージに対する承認または認証のチェックがないため、通常、HTTP リポジトリに新しいパッケージを直接発行することはお勧めしません。パッケージを HTTP リポジトリに発行する代わりに、パッケージリポジトリへの配布で説明するように、すでに発行されているパッケージを HTTP リポジトリに配布します。HTTP リポジトリへの発行は、ファイルリポジトリへの NFS または SMB アクセスが不可能な場合にいくつかのマシンにわたって同じパッケージをテストするときや、セキュリティー保護されたネットワーク上で便利なことがあります。HTTP リポジトリに直接発行する場合、そのリポジトリは svc:/application/pkg/server サービスの読み取り/書き込みインスタンスがあるマシン (pkg/readonly プロパティーの値が false) でホストされている必要があります。