ローカルファイルベースのリポジトリにパッケージを発行します。このリポジトリは、この新しいパッケージの開発およびテスト用のリポジトリです。一般的な使用の目的でリポジトリを作成する場合は、そのリポジトリ用の個別ファイルシステムの作成などの追加手順を含めてください。一般的な使用の目的でのパッケージリポジトリの作成については、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) でホストされている必要があります。