ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11 Information Library (日本語) |
- パッケージ形式の変換
pkgtrans [-inosg] [-k keystore] [-a alias] [-P passwd] device1 device2 [pkginst]...
pkgtrans ユーティリティーは、インストール可能なパッケージをある形式から別の形式に変換します。次のような変換が行われます。
ファイルシステム形式からデータストリームへ
ファイルシステム形式から署名付きのデータストリームへ
データストリームからファイルシステム形式へ
あるファイルシステム形式から別のファイルシステム形式へ
このコマンドのオプションと引数は次のとおりです。
friendlyName が示す別名に関連付けられた公開鍵証明書と対応する秘密鍵を使用します。詳細は、KEYSTORE LOCATIONS and KEYSTORE AND CERTIFICATE FORMATS in pkgadd(1M)を参照してください。
結果として得られたデータストリームに署名します。
pkginfo(4) ファイルと pkgmap(4) ファイルのみをコピーします。
キーストアを使用して、署名の生成に使用する秘密鍵を取得します。指定しなかった場合は、-a で指定した秘密鍵を見つけるためにデフォルトの場所が検索されます。別名を指定せず、キーストアに複数の鍵が存在する場合は、pkgtrans が異常終了します。検索の場所と形式の詳細については、KEYSTORE LOCATIONS and KEYSTORE AND CERTIFICATE FORMATS in pkgadd(1M)を参照してください。
root 以外のユーザーが実行した場合、証明書検索のデフォルトベースディレクトリは …/.pkg/security になります。ここで、… は pkgtrans を起動したユーザーのホームディレクトリです。
このパッケージのインスタンスがすでに存在する場合は、宛先デバイス上にパッケージの新しいインスタンスを作成します。作成するインスタンスの最大数は、pkginfo(4) ファイルの MAXINST 変数で指定されます。
宛先デバイス上の同じインスタンスを上書きします。パッケージインスタンスがすでに存在する場合、そのインスタンスは上書きされます。
キーストアの復号化に使用するパスワードを指定します。このオプションの引数の構文の詳細については、PASS PHRASE ARGUMENTS in pkgadd(1M)を参照してください。
パッケージをファイルシステムではなくデータストリームとして device2 に書き込むよう指定します。デフォルトの動作では、両方の形式をサポートするデバイスにはファイルシステム形式で書き込みます。
ソースデバイスを指定します。このデバイス上の 1 つ以上のパッケージを変換して、device2 に格納します。下記の「デバイス識別子」を参照してください。
宛先デバイスを指定します。変換されたパッケージはこのデバイスに格納されます。下記の「デバイス識別子」を参照してください。
device1 上の変換対象となるパッケージインスタンスを 1 つ以上指定します。トークン all を使用すると、すべてのパッケージを指定できます。pkginst.* を使用すると、1 つのパッケージのすべてのインスタンスを指定できます。パッケージを定義しなかった場合は、デバイス上のすべてのパッケージがプロンプトに表示され、変換対象を選択するよう求められます。
シェルによっては、アスタリスク文字 (*) が特殊な意味を持つことがあり、 * をエスケープしなければならない場合があります。C シェルの場合、* は単一引用符 (') で囲むか、またはバックスラッシュ (\) を前に付ける必要があります。
pkgtrans、pkgadd(1M)、pkgchk(1M) などのパッケージツールでは、パッケージが格納されているデバイスを指定することによってパッケージの場所を指定できます。次の一覧は、パッケージを格納して取り出すことができるデバイスのタイプです。ただし、ソースデバイスと宛先デバイスを同じデバイスにすることはできません。
デバイス識別子をデバイスとして指定することで、パッケージを文字デバイスまたはブロック型デバイスに格納できます。このデバイスタイプのよくある例は、取り外し可能磁気テープの /dev/rmt/0 です。pkgtrans では、通常のファイルシステムのファイルをストリーム形式で生成することもできます。これは、文字デバイスや Web サーバーへの格納、または pkgadd(1M) への入力に適しています。
ファイルシステムのディレクトリへの絶対パスを指定することにより、パッケージをディレクトリに格納できます。パッケージの内容は、指定したディレクトリ内のディレクトリに格納されます。パッケージのディレクトリ名は、pkginfo(4) ファイルでの PKG の指定と同じにする必要があります。このタイプのデバイス指定の例は、/export/packages です。
例 1 /tmp 上のパッケージを変換する
次の例では、/tmp 上のパッケージ pkg1 および pkg2 をデータストリーム形式に変換しています。
example% pkgtrans -s /tmp /tmp/datastream.pkg pkg1 pkg2
例 2 署名付きパッケージを作成する
次の例では、pkg1 および pkg2 から署名付きパッケージを作成し、$PASS 環境変数からパスワードを読み取っています。
example% pkgtrans -sg -k /tmp/keystore.p12 -a foo \ -p env:PASS /tmp /tmp/signedpkg pkg1 pkg2
例 3 パッケージデータストリームを変換する
次の例では、パッケージのデータストリームをファイルシステム形式のパッケージに変換しています。
example% pkgtrans /tmp/pkg1.pkg ~/tmp pkg1
pkginfo(4) ファイルに MAXINST 変数が設定され、パッケージインスタンスの最大数が宣言されています。
正常終了。
エラーが発生しました。
属性についての詳細は、attributes(5) を参照してください。
|
pkginfo(1), pkgmk(1), pkgparam(1), pkgproto(1), installf(1M), pkgadd(1M), pkgask(1M), pkgrm(1M), removef(1M), pkginfo(4), pkgmap(4), attributes(5), largefile(5)
『Application Packaging Developer’s Guide』
デフォルトでは、パッケージのインスタンスが宛先デバイスにすでに存在する場合、pkgtrans はそのパッケージのどのインスタンスも変換しません。-n オプションを使用すると、このパッケージのインスタンスがすでに存在する場合に新しいインスタンスが作成されます。-o オプションを使用すると、このパッケージのインスタンスがすでに存在する場合にそのインスタンスが上書きされます。宛先デバイスがデータストリームである場合は、どちらのオプションも使用できません。
パッケージコマンドは、largefile(5) を認識します。これらのコマンドは、2G バイトより大きなファイルを、より小さなファイルと同様に処理します。現在の実装では、pkgadd(1M)、pkgtrans1、およびそのほかのパッケージコマンドは最大 4G バイトのデータストリームを処理できます。