pkgrecv コマンドを使用すると、パッケージおよびそのパブリッシャーのデータをリポジトリに追加できます。pkgrepo コマンドを使用すると、リポジトリからパッケージおよびパブリッシャーを削除できます。
リポジトリにパブリッシャーを追加できます。たとえば、solaris、ha-cluster、および solarisstudio パッケージを 1 つのリポジトリに保持できます。
カスタムパッケージを追加する場合は、カスタムパブリッシャー名でそれらのパッケージを公開します。カスタムパッケージを既存のパブリッシャー (solaris など) として公開しないでください。パブリッシャーが指定されていないパッケージを公開すると、それらのパッケージはそのリポジトリのデフォルトパブリッシャーに追加されます。カスタムパッケージを正しいデフォルトパブリッシャーでテストリポジトリに公開します。その後、pkgrecv コマンドを使用して、それらのパッケージおよびそのパブリッシャー情報を本稼働リポジトリに追加します。手順については、Oracle Solaris 11.3 でのImage Packaging System を使用したソフトウェアのパッケージ化と配布 の パッケージを発行するを参照してください。
次の例では、isvpub パブリッシャーのデータおよび ISVproducts.p5p パッケージアーカイブからのすべてのパッケージをローカルリポジトリに追加しています。パッケージアーカイブは、パブリッシャーの情報と、そのパブリッシャーによって提供された 1 つ以上のパッケージを含むファイルです。Oracle Solaris 11.3 での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
O 列の値は、パッケージが廃止されている (o) か、または名前が変更されている (r) かを示します。
次の pkgrecv コマンドは、ソースリポジトリからすべてのパッケージを取得します。取得するパッケージの名前を指定する場合、または '*' 以外のパターンを指定する場合は、-r オプションを指定して、必要なすべての依存するパッケージを取得してください。
$ pkgrecv -s /tmp/ISVproducts.p5p -d /var/share/pkgrepos/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 /var/share/pkgrepos/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 /var/share/pkgrepos/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 /var/share/pkgrepos/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/ を指定できます。
リポジトリへのパッケージの追加に示す pkgrepo info および pkgrepo list コマンドのほかに、pkgrepo contents コマンドを使用すると、リポジトリ内のパッケージの内容を検査できます。
単一のパッケージの場合、pkgrepo contents コマンドの出力は、pkg contents -m コマンドの出力と同じです。pkgrepo contents コマンドは指定したリポジトリ内で一致する各パッケージの出力を表示し、pkg contents コマンドはこのイメージにインストール可能な一致するパッケージのバージョンのみの出力を表示します。-t オプションを指定すると、pkgrepo contents コマンドは指定されたアクションのみを表示します。
次の例では、パッケージの 1 つのバージョンのみが指定されたリポジトリに存在するため、このパッケージのバージョンを指定する必要はありません。このパッケージには、Oracle Database 12 のインストールおよび操作に必要な一連の Oracle Solaris パッケージを提供する depend アクションが含まれています。
$ pkgrepo -s http://pkg.oracle.com/solaris/release/ \ contents -t depend oracle-rdbms-server-12cR1-preinstall depend fmri=x11/library/libxi type=group depend fmri=x11/library/libxtst type=group depend fmri=x11/session/xauth type=group depend fmri=compress/unzip type=require depend fmri=developer/assembler type=require depend fmri=developer/build/make type=require
Oracle パブリッシャーによって配布されたパッケージを削除しないでください。Oracle Solaris 11.3 ソフトウェアの追加と更新には、目的のパッケージのみをインストールし、それ以外のパッケージをインストールしない方法が示されています。
pkgrepo remove コマンドを使用すると、Oracle パブリッシャーから配布されたものではないを削除できます。pkgrepo remove-publisher コマンドを使用すると、パブリッシャーおよびそのパブリッシャーによって配布されたすべてのパッケージを削除できます。詳細は、pkgrepo(1)のマニュアルページを参照してください。ローカルの IPS パッケージリポジトリを更新する方法の説明に従って、これらの操作はリポジトリのコピーに対して実行してください。