/usr/bin/pkgrecv [-aknrv] [-s (src_path|src_uri)] [-d (dest_path|dest_uri)] [-c cache_dir] [-m match] [--raw] [--key src_key --cert src_cert] [--dkey dest_key --dcert dest_cert] (fmri|pattern) ...
/usr/bin/pkgrecv [-s (src_path|src_uri)] --newest
/usr/bin/pkgrecv [-nv] [-s (src_path|src_uri)] [-d (dest_path|dest_uri)] [-p publisher]... [--key src_key --cert src_cert] --clone
pkgrecv は、pkg(5) リポジトリまたは –s オプションで指定されたパッケージアーカイブから一致する各 fmri または pattern のすべてのバージョンを取得し、取得したパッケージを、–d オプションで指定されたパッケージリポジトリまたはパッケージアーカイブにオプションで再発行します。デフォルトでは、パッケージは pkg、pkg.depotd、およびパッケージ公開ツールでの使用に適したパッケージリポジトリ形式で取得されます。
変更のないパッケージは再発行されません。したがって、既存のリポジトリを更新する時間は、新規および変更されたパッケージの数によって異なります。
–m オプションを使用して、一致する各パッケージのすべてのバージョンを取得するか、一致する各パッケージの最新バージョンのみを取得するかを指定します。
取得対象に '*' を指定しない場合、指定されたパッケージのすべての依存関係を取得するようにするために、–r オプションを指定したい場合があります。
dest_uri に対してパッケージを取得する pkgrecv 操作後に、dest_uri リポジトリが pkg search 操作をサポートする必要がある場合は、そのリポジトリ上で pkgrepo refresh を実行して、検索インデックスを更新してください。
サポートしているオプションは、次のとおりです。
使用方法に関するメッセージを表示します。
取得されたパッケージデータを、–d オプションで指定された場所にある pkg(5) アーカイブ内に格納します。–d で指定されたファイルが存在していてはいけません。–a オプションは、ファイルシステムベースの出力先の場合にのみ使用できます。必須ではありませんが、.p5p のファイル拡張子 (たとえば、archive.p5p) を使用することを強くお勧めします。–a オプションを –-raw オプションと一緒に組み合わせることはできません。
ダウンロードされた内容をキャッシュするために使用されるディレクトリのパスを指定します。このディレクトリが指定されていない場合は、クライアントによってキャッシュディレクトリが自動的に選択されます。ダウンロードが中断されたときに、キャッシュディレクトリが自動的に選択されていた場合は、このオプションを使用してダウンロードを再開します。一時的なデータストレージに使用される場所を設定する方法についての詳細は、下の「環境変数」のセクションを参照してください。
取得したパッケージを再発行する必要があるファイルシステムのパスまたは URI を指定します。–a を指定する場合、この宛先は、まだ存在しないパッケージアーカイブである必要があります。–a を指定しない場合、この宛先は、すでに存在するパッケージリポジトリである必要があります。pkgrepo コマンドを使用して、新規パッケージリポジトリを作成します。–d が指定されていない場合は、PKG_DEST の値が使用されます。以下の「環境変数」を参照してください。
取得されたパッケージの内容を圧縮されたままにします。このオプションは、再公開時には無視されます。圧縮されたパッケージの内容を pkgsend で使用しないようにしてください。
pattern が指定された場合、または fmri が完全に指定されていない場合に、取得するパッケージのバージョンを制御します。これを説明するため、–s オプションで指定されたソース内に例として次の 4 つのパッケージが存在するとします。これらの FMRI で、@ と : の間にある文字は番号付きのパッケージバージョンを表し、: から末尾までの文字はバージョン文字列のタイムスタンプ部分を表します。
pkg://solaris/package/pkg@0.5.11,5.11-0.175.1.0.0.24.0:20120904T180335Z pkg://solaris/package/pkg@0.5.11,5.11-0.175.1.0.0.24.0:20120903T170234Z pkg://solaris/package/pkg@0.5.11,5.11-0.175.1.0.0.23.0:20120820T165108Z pkg://solaris/package/pkg@0.5.11,5.11-0.175.1.0.0.23.0:20120819T155007Z
一致する各 fmri または pattern のすべてのバージョンを取得します (all-versions を暗黙的に意味します)。これは、–m オプションが指定されなかった場合のデフォルト動作です。前述の例では、4 つのパッケージがすべて取得されます。
一致する各 fmri または pattern の各バージョンの最新のタイムスタンプを取得します。前述の例では、次の 2 つのパッケージが取得されます。
pkg://solaris/package/pkg@0.5.11,5.11-0.175.1.0.0.24.0:20120904T180335Z pkg://solaris/package/pkg@0.5.11,5.11-0.175.1.0.0.23.0:20120820T165108Z
一致する各 fmri または pattern の最新バージョンのみを取得します。前述の例では、次のパッケージのみが取得されます。
pkg://solaris/package/pkg@0.5.11,5.11-0.175.1.0.0.24.0:20120904T180335Z
変更を行うことなく、試験実行を行います。
指定されたパブリッシャーのみをクローニングします。このオプションは複数回指定できます。–p オプションは、–-clone オプションと組み合わせた場合にのみ有効です。
一致する fmri または pattern ごとのすべての依存関係を再帰的に取得します。
パッケージデータ受信先の pkg(5) リポジトリまたはパッケージアーカイブのファイルシステムのパスまたは URI を指定します。–s が指定されていない場合は、PKG_SRC の値が使用されます。以下の「環境変数」を参照してください。
詳細出力を表示します。これには、取得したパッケージ数とそれらの完全な FMRI、取得したファイル数、および推定転送サイズが含まれます。
ソース HTTPS リポジトリからパッケージを取得するために使用するクライアント SSL キーファイルを指定します。
ソース HTTPS リポジトリからパッケージを取得するために使用するクライアント SSL 証明書ファイルを指定します。
公開先の HTTPS リポジトリにパッケージを公開するために使用するクライアント SSL キーファイルを指定します。
公開先の HTTPS リポジトリにパッケージを公開するために使用するクライアント SSL 証明書ファイルを指定します。
ソースリポジトリの正確なコピーを作成します。デフォルトでは、ソースリポジトリ内のパブリッシャーが公開先にも存在する場合にのみ、クローン操作が成功します。クローン操作を指定されたパブリッシャーに制限するには、–p オプションを使用します。–p オプションを使用して指定されたパブリッシャーが公開先リポジトリにまだ存在しない場合は、公開先リポジトリに追加されます。公開先リポジトリに存在するがソースリポジトリに存在しないパッケージは、削除されます。クローン操作でエラーが発生した場合、公開先リポジトリは変更されたままになります。このため、公開先リポジトリを専用の ZFS データセットに配置し、クローン操作を実行する前にスナップショットを作成するようにしてください。
–s オプションで指定されたリポジトリから使用可能な最新バージョンのパッケージを一覧表示します。その他のすべてのオプションは無視されます。
raw パッケージデータを取得し、–d で指定された場所に、幹およびバージョンごとの一連のディレクトリ構造内に格納します。–-raw オプションは、ファイルシステムベースの出力先の場合にのみ使用できます。このパッケージデータを使用すると、一般にはファイルの内容を修正するか、または追加のパッケージメタデータを提供することによって、パッケージを便利に変更して再公開することができます。–-raw オプションを –a と組み合わせることはできません。
test という名前のシステム上のリポジトリから使用可能な最新のパッケージを一覧表示します。
$ pkgrecv -s http://test --newest pkg://solaris/system/library/c++-runtime@0.5.11,5.11-0.175.0.0.0.2.1:20120921T190358Z pkg://solaris/system/library/freetype-2@2.4.8,5.11-0.175.1.0.0.7.1234:20120109T215840Z pkg://solaris/system/library/math@0.5.11,5.11-0.175.0.0.0.2.1:20120921T190432Z使用例 2 raw パッケージデータを取得する
例 1 から c++-runtime パッケージを pkgsend publish で使用するために適した形式で受け取ります。
$ pkgrecv -s http://test \ -d /local/repo --raw \ c++-runtime@0.5.11,5.11-0.175.0.0.0.2.1:20120921T190358Z Processing packages for publisher solaris ... Retrieving and evaluating 1 package(s)... PROCESS ITEMS GET (MB) SEND (MB) Completed 1/1 3.5/3.5 0.0/0.0 $ ls /local/repo pkg5.repository publisher system%2Flibrary%2Fc%2B%2B-runtime使用例 3 システムから依存関係を取得する
test という名前のシステムから、パッケージ editor/vim とそのすべての依存関係を受け取ります。
$ pkgrecv -s http://test -d /local/repo -r editor/vim使用例 4 最新バージョンのみを取得する
test という名前のシステムから、パッケージ editor/vim の最新バージョンのみを受け取ります。
$ pkgrecv -s http://test -d /local/repo -m latest -v \ editor/vim Processing packages for publisher solaris ... Retrieving and evaluating 1 package(s)... Retrieving packages ... Packages to add: 1 Files to retrieve: 1557 Estimated transfer size: 9.21 MB Packages to transfer: editor/vim@7.3.600,5.11-0.175.1.0.0.24.0:20120904T172128Z PROCESS ITEMS GET (MB) SEND (MB) Completed 1/1 9.2/9.2 25.4/25.4使用例 5 すべてのバージョンを取得し、リモートから再公開する
test という名前のシステムから、パッケージ library/zlib のすべてのバージョンを受け取り、それを remote という名前のシステム上のリモートリポジトリに再公開します。
$ pkgrecv -s http://test -d http://remote:10000 \ -m all-versions library/zlib使用例 6 リポジトリから依存関係を取得する
/export/repo にあるリポジトリから、パッケージ editor/gnu-emacs とそのすべての依存関係を受け取ります。
$ pkgrecv -s /export/repo -d /local/repo -r editor/gnu-emacs使用例 7 追加パッケージおよび変更された内容の取得
まだ存在しないすべてのパッケージおよびすべての変更済みの内容を、http://pkg.oracle.com/solaris/release/ にあるリポジトリから /export/repoSolaris11 にあるリポジトリに受信します。
$ pkgrecv -s http://pkg.oracle.com/solaris/release/ \ -d /export/repoSolaris11 -m all-timestamps '*'
まだ存在しないすべてのパッケージおよびすべての変更済みの内容を、https://pkg.oracle.com/solaris/support/ にあるセキュアなリポジトリから /export/repoSolaris11 にあるリポジトリに受信します。
$ pkgrecv -s https://pkg.oracle.com/solaris/support/ \ -d /export/repoSolaris11 -m all-timestamps \ --key /var/pkg/ssl/Oracle_Solaris_11_Support.key.pem \ --cert /var/pkg/ssl/Oracle_Solaris_11_Support.certificate.pem '*'使用例 8 パッケージアーカイブを作成する
http://example.com:10000 にあるリポジトリから、パッケージ editor/gnu-emacs とそのすべての依存関係を含むパッケージアーカイブを作成します。
$ pkgrecv -s http://example.com:10000 -d /my/emacs.p5p -a \ -r editor/gnu-emacs使用例 9 パッケージをアーカイブからリポジトリにコピーする
パッケージアーカイブ内のすべてのパッケージを /export/repo にある既存のリポジトリにコピーします。
$ pkgrecv -s /my/archive.p5p -d /export/repo '*'
次の環境変数がサポートされています。
取得されたパッケージを保存する先のディレクトリのパス、またはパッケージがコピーされるリポジトリまたはパッケージアーカイブのファイルシステムのパスまたは URI。
パッケージ取得先の pkg(5) リポジトリまたはパッケージアーカイブの場所を表す URI またはファイルシステムのパス。
プログラム実行中に一時データが格納されるディレクトリの絶対パス。設定されていない場合、一時データはデフォルトで /var/tmp に格納されます。
次の終了ステータスが返されます。
コマンドが成功しました。
エラーが発生した。
無効なコマンド行オプションが指定された。
複数の操作が要求されましたが、それらの一部のみが成功しました。
予期しない例外が発生しました。
次の属性については、attributes(5) を参照してください。
|
pkgrepo(1), pkgsend(1), pkg(5)
Oracle Solaris 11.2 パッケージリポジトリのコピーと作成
https://java.net/projects/ips/pages/Home
ファイルシステムベースの公開先リポジトリを使用する場合、パッケージの転送が完了して Web インタフェースまたは検索応答で変更が反映されたあとに、そのリポジトリを提供している pkg.depotd プロセスを再開する必要があります。詳細は、pkg.depotd(1M) を参照してください。