リポジトリにパブリッシャーを追加できます。たとえば、solaris、ha-cluster、および solarisstudio パッケージを 1 つのリポジトリに保持できます。
カスタムパッケージを追加する場合は、カスタムパブリッシャー名でそれらのパッケージを公開します。カスタムパッケージを既存のパブリッシャー (solaris など) として公開しないでください。パブリッシャーが指定されていないパッケージを公開すると、それらのパッケージはそのリポジトリのデフォルトパブリッシャーに追加されます。カスタムパッケージを正しいデフォルトパブリッシャーでテストリポジトリに公開します。その後、pkgrecv コマンドを使用して、それらのパッケージおよびそのパブリッシャー情報を本稼動リポジトリに追加します。手順については、Oracle Solaris 11.2 での Image Packaging System を使用したソフトウェアのパッケージ化と配布 のパッケージを発行するを参照してください。
次の例では、isvpub パブリッシャーのデータおよび ISVproducts.p5p パッケージアーカイブからのすべてのパッケージをローカルリポジトリに追加しています。パッケージアーカイブは、パブリッシャーの情報と、そのパブリッシャーによって提供された 1 つ以上のパッケージを含むファイルです。Oracle Solaris 11.2 での Image Packaging System を使用したソフトウェアのパッケージ化と配布 のパッケージアーカイブファイルとしての配布を参照してください。pkgrepo のほとんどの操作は、パッケージアーカイブでは使用できません。パッケージアーカイブには、パッケージが含まれていますが、リポジトリ構成は含まれていません。ただし、pkgrepo list および pkgrepo contents コマンドは、パッケージアーカイブに対して動作します。pkgrepo contents コマンドについては、リポジトリ内のパッケージの検査で説明しています。
pkgrepo list 出力にパブリッシャーが表示されます。これは、このパブリッシャーが、このイメージ内の検索順序で最上位にランクされているパブリッシャーでないためです。
$ pkgrepo -s /tmp/ISVproducts.p5p list PUBLISHER NAME O VERSION isvpub isvtool 1.1,5.11:20131120T021902Z isvpub isvtool 1.0,5.11:20131120T010105Z
次の pkgrecv コマンドは、ソースリポジトリからすべてのパッケージを取得します。取得するパッケージの名前を指定する場合、または '*' 以外のパターンを指定する場合は、-r オプションを指定して、必要なすべての依存するパッケージを取得してください。
$ pkgrecv -s /tmp/ISVproducts.p5p -d /export/IPSpkgrepos/Solaris '*' Processing packages for publisher isvpub ... Retrieving and evaluating 2 package(s)... PROCESS ITEMS GET (MB) SEND (MB) Completed 2/2 0.0/0.0 0.0/0
リポジトリの内容を変更したら、そのリポジトリをリフレッシュして、このリポジトリ用に構成されているパッケージ集積サーバーのサービスインスタンスを再起動します。
$ pkgrepo -s /export/IPSpkgrepos/Solaris refresh -p isvpub Initiating repository refresh. $ svcadm refresh pkg/server:solaris $ svcadm restart pkg/server:solaris
次の pkgrepo info コマンドは 1 つのパッケージを表示します。これは、取得した 2 つのパッケージが同じパッケージの異なるバージョンであったためです。pkgrepo list コマンドは両方のパッケージを表示します。
$ pkgrepo -s /export/IPSpkgrepos/Solaris info PUBLISHER PACKAGES STATUS UPDATED solaris 4768 online 2014-01-02T19:19:06.983979Z isvpub 1 online 2014-03-20T23:24:37.196773Z $ pkgrepo -s /export/IPSpkgrepos/Solaris list -p isvpub PUBLISHER NAME O VERSION isvpub isvtool 1.1,5.11:20131120T021902Z isvpub isvtool 1.0,5.11:20131120T010105Z
pkg set-publisher コマンドを使用して、isvpub パブリッシャーに新しいリポジトリの場所を追加します。
このリポジトリを HTTP インタフェースから利用でき、ブラウザを使用してこのリポジトリの内容を表示する場合は、その場所のパブリッシャーを指定するとこの新しいパッケージを表示できます。たとえば、http://localhost:81/isvpub/ を指定できます。