Go to main content
Oracle® Solaris 11.3 パッケージリポジトリのコピーと作成

印刷ビューの終了

更新: 2016 年 11 月
 
 

ローカルリポジトリのカスタマイズ

pkgrecv コマンドを使用すると、パッケージおよびそのパブリッシャーのデータをリポジトリに追加できます。pkgrepo コマンドを使用すると、リポジトリからパッケージおよびパブリッシャーを削除できます。

リポジトリへのパッケージの追加

リポジトリにパブリッシャーを追加できます。たとえば、solarisha-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 パッケージリポジトリを更新する方法の説明に従って、これらの操作はリポジトリのコピーに対して実行してください。