pkgadd - システムへのソフトウェアパッケージの転送
pkgadd [-nv] [-a admin] [-G] [-x proxy] [ [-M] -R root_path] [-r response] [-k keystore] [-P passwd] [-V fs_file] [-d device | -d datastream pkginst | all] [pkginst | -Y category [, category]...]
pkgadd -s [-d device | -d datastream pkginst | all] [pkginst | -Y category [, category]...]
pkgadd は、ソフトウェアパッケージの内容をインストール用の配布媒体またはディレクトリからシステムに転送します。–d device ソース指定子を指定せずに使用した場合、pkgadd はデフォルトのスプールディレクトリ (/var/spool/pkg) 内でパッケージを検索します。–s オプションを指定して使用した場合は、パッケージをインストールせずにスプールディレクトリに書き込みます。
pkgadd ユーティリティーを使用するには、インストールされるパッケージのサイズ分の一時領域が必要です。pkgadd は $TMPDIR 環境変数があるかどうかを確認して、使用する一時ディレクトリを決定します。$TMPDIR が定義されていない場合、pkgadd は stdio.h の P_tmpdir を使用します。P_tmpdir にはデフォルトで /var/tmp/ が設定されています。
アンバンドルのパッケージやサードパーティーのパッケージの中には、pkgadd の最新バージョンと完全な互換性がないものがあります。これらのパッケージについては、インストールの開始時だけでなくインストールの全体を通してユーザーとの対話が必要になるか、またはリクエストスクリプトを root ユーザーとして実行する必要があります。
これらの古い (Solaris 2.4 より前にリリースされた) パッケージをインストールするには、次の環境変数を設定します: NONABI_SCRIPTS=TRUE。
この環境変数が設定されている場合にかぎり、pkgadd でインストール中のキーボードによる対話が可能になり、パッケージスクリプトが root として実行されます。
(noaccess (デフォルト) や install ユーザーではなく) root ユーザーとして実行する必要があるパッケージリクエストスクリプトがある場合は、admin(5) ファイルで rscript_alt パラメータを使用して適切な選択を行います。admin(5) を参照してください。
Solaris 8 および Solaris 9 では、リクエストスクリプトを実行するときのデフォルトユーザーはオペレーティングシステムのパッチレベルに応じて root か nobody のいずれかでした。現在のリリースでは、デフォルトユーザーは noaccess です。
pkgadd、pkgtrans(1)、およびその他のパッケージコマンドは、その現在の実装では最大 4G バイトのデータストリームを処理できます。
「形式」に示した –d、–Y、および pkginst 引数については、「オプション」の次にある「オペランド」で説明します。
サポートされているオプションについて、次に説明します。–d device ソース指定子については、あとの「オペランド」で説明します。
デフォルトの管理ファイルの代わりに使用するインストール管理ファイル (admin) を定義します。トークン none は、admin ファイルの使用をオーバーライドするため、ユーザーとの対話が必要になります。フルパス名が指定されない場合、pkgadd は最初に現在の作業ディレクトリで管理ファイルを検索します。指定された管理ファイルが現在の作業ディレクトリに存在しない場合、pkgadd は /var/sadm/install/admin ディレクトリで管理ファイルを検索します。
このオプションは推奨されていません。
パッケージ内で見つかったデジタル署名を検証するときに、信頼できる認証局の証明書を取得する場所として keystore を使用します。キーストアが指定されていない場合は、デフォルトのキーストアの場所で有効な信頼できる証明書が検索されます。詳細は、「キーストアの場所」を参照してください。
クライアントのマウントポイントを決定するときに $root_path/etc/vfstab ファイルを使用しないように pkgadd に指示します。このオプションは、マウントポイントがサーバー上で適切であり、サーバーの動作が Solaris 2.5 以前のリリースと適合することを前提としています。
非対話型モードでインストールを実行します。インストールされたファイルのリストを出力しません。デフォルトのモードは対話型です。
–k で指定されたキーストアを復号化するために使用するパスワード (必要な場合)。このオプションの引数の形式の詳細は、「パスフレーズの引数」を参照してください。
直前の pkgask(8) セッションの出力を格納するファイルまたはディレクトリを指定します。このファイルは、対話型モードでパッケージからリクエストされる対話の応答を提供します。response はフルパス名である必要があります。
root_path として使用するディレクトリのフルパス名を定義します。すべてのファイル (パッケージシステム情報ファイルを含む) は root_path から始まるディレクトリツリーに再配置されます。root_path は、サーバーからクライアントにインストールするときに指定できます (たとえば、/export/root/client1)。
パッケージをインストールせずに spool ディレクトリに書き込みます。
pkginst/install ディレクトリに存在し、pkgadd によって実行されるすべてのスクリプトを追跡します。このオプションは、手続き型および非手続き型スクリプトをデバッグするときに使用します。
クライアントのファイルシステムをマップする代替の fs_file を指定します。たとえば、$root_path/etc/vfstab ファイルが存在しない場合や信頼できない場合などに使用します。
パッケージをダウンロードするときに使用する HTTP[S] プロキシを指定します。プロキシの書式は host:port です。ここで、host は HTTP[S] プロキシのホスト名、port はそのプロキシに関連付けられたポート番号です。このスイッチは、プロキシを指定するほかのすべての方法をオーバーライドします。デフォルトのプロキシを指定する代わりの方法については、「環境変数」を参照してください。
オプションもオペランドも指定しないで実行すると、pkgadd は /var/spool/pkg (デフォルトのスプールディレクトリ) を使用します。
次のオペランドがサポートされています。
デフォルトでは、pkgadd はインストールまたはスプールするパッケージのインスタンスを検索するときに /var/spool/pkg ディレクトリを検索します。オプションで次を使用して、インストールまたはスプールされるパッケージインスタンスのソースを指定することもできます。
device からパッケージをインストールまたはコピーします。device には次のいずれかを指定できます。
ディレクトリのフルパス名、あるいはテープまたはリムーバブルメディアの識別子 (たとえば、/var/tmp)。
pkgtrans によって作成されたデータストリーム (pkgtrans(1) を参照)。
pkgtrans によって作成されたデータストリームを指す URL。サポートされている URI (Universal Resource Identifier) は、http: と https: です。
上記の –d 指定子の 2 番目の形式は、データストリームを指定するときに使用する構文を示しています。この場合は、パッケージ名のコンマ区切りリストか、キーワード all のいずれかを指定する必要があります。
デフォルトでは、pkgadd は指定したソースを検索し、ユーザーがソース上で見つかったどのパッケージインスタンスをインストールするかを選択できる対話式メニューを表示します。代わりの方法として次を使用して、インストールするパッケージインスタンスを指定することもできます。
インストールするパッケージインスタンスまたはインスタンスのリスト。ソース媒体で使用可能なすべてのパッケージを参照するには、トークン all を使用します。パッケージのすべてのインスタンスを指定するには、書式 pkginst.* を使用します。
シェルによっては、アスタリスク文字 (*) が特殊な意味を持つことがあり、 * をエスケープしなければならない場合があります。C シェルの場合は、アスタリスクを単一引用符 (') で囲むか、アスタリスクの前にバックスラッシュ (\) を付ける必要があります。
パッケージの pkginfo(5) ファイルに格納されている CATEGORY パラメータの値に基づいてパッケージをインストールします。CATEGORY が指定したカテゴリのいずれかに一致するソース媒体上のすべてのパッケージがインストールまたはスプール用に選択されます。
pkgadd などのパッケージは、パッケージ内で見つかったすべての署名の署名検証を行うために、信頼できる証明書のセットを使用します。パッケージに署名が 1 つも含まれていない場合は、署名の検証が省略されます。証明書はさまざまな場所にある可能性があります。–k keystore が指定され、keystore がディレクトリである場合、keystore は使用される証明書のベースディレクトリと見なされます。keystore がファイルである場合は、このファイル自体に必要な鍵と証明書がすべて含まれていると見なされます。–k が指定されていない場合は、ベースディレクトリとして /var/sadm/security が使用されます。
指定したベースディレクトリ内で検索されるストアの場所は、検索を行なっているアプリケーションと検索されるストアの種類によって異なります。次のディレクトリが指定された順序で検索されます。
<store_dir>/<app_name>/<store_type>
<store_dir>/<store_type>
ここで、<store_dir> は –k で指定されたディレクトリであり、<app_name> は検索を行なっているアプリケーションの名前であり、<store_type> は keystore (非公開鍵の場合)、certstore (信頼できない公開鍵証明書の場合)、truststore (信頼できる認証局の証明書の場合) のいずれかです。
たとえば、–k /export/certs を指定して pkgadd を実行した場合は、信頼できるストアを見つけるために次の場所が連続して検索されます。
/export/certs/pkgadd/truststore
/export/certs/truststore
この検索順序により、管理者はほとんどのアプリケーションに対して 1 つの場所を用意し、特定のアプリケーションに対して特別な証明書の場所を用意することができます。
pkgtrans などのパッケージングユーティリティーは、パッケージに署名し、必要に応じてパッケージを検証するために、鍵と証明書のセットにアクセスする必要があります。
「キーストアの場所」に示した検索パターンに従って見つかったキーストアファイルは、それぞれ自己完結型の PKCS#12 形式ファイルである必要があります。
pkgtrans でパッケージに署名するときに certstore に複数の公開鍵証明書が含まれている場合、パッケージへの署名時に –a オプションで公開鍵を識別して選択できるようにするには、各公開鍵に friendlyName 属性が含まれている必要があります。さらに、–a で選択した公開鍵証明書と certstore で見つかった公開鍵証明書に対して、キーストア内に関連する秘密鍵が存在する必要があります。
いくつかのブラウザやユーティリティーを使用して、証明書と鍵を PKCS#12 キーストアにエクスポートおよびインポートできます。たとえば、OpenSSL ツールキットを使用して、信頼できる証明書を Mozilla からエクスポートし、それを pkgadd で使用する PKCS#12 キーストアにインポートできます。
pkgtrans と pkgadd は、パスワードの引数を受け入れます。通常は –p を使用してパスワードを指定します。これらにより、パスワードをさまざまなソースから取得できます。これらのオプションはどちらも 1 つの引数を取ります。その書式を次に示します。パスワードの引数が 1 つも指定されていないが、パスワードが必要な場合、ユーザーはパスワードを入力するように求められます。通常、これは現在の端末からエコーをオフにした状態で読み取られます。
実際のパスワードは password です。パスワードは ps などのユーティリティーで表示できるため、この書式はセキュリティーが重要でない場合にのみ使用するようにしてください。
パスワードを環境変数 var から取得します。一部のプラットフォームではほかのプロセスの環境を表示できるため、このオプションは注意して使用するようにしてください。
pathname に含まれる 1 行目がパスワードです。pathname は通常のファイルを参照する必要はありません。デバイスや名前付きパイプなども参照できます。たとえば、標準入力からパスワードを読み取るには、file:/dev/stdin を使用します。
/dev/tty からパスワードを読み取ります。
次の例は、Solaris DVD からパッケージをインストールします。インストールするパッケージの名前を入力するように求められます。
example# pkgadd -d /cdrom/cdrom0/s0/Solaris_10/Product使用例 2 データストリームから一連のパッケージをインストールする
次に示すコマンド例は、–d ソース指定子で指定されたデータストリーム内のすべてのパッケージをインストールします。このコマンドを実行する前に、pkgtrans(1) コマンドを使ってこのデータストリームを作成しておく必要があります。
example# pkgadd -d /var/tmp/datastream all
キーワード all は、指定されたデータストリーム内で見つかったすべてのパッケージがインストールされることを表します。
正常終了
致命的エラーが発生したことを表します。
警告。
割り込み。
管理。
管理。対話が必要。pkgadd –n を使用しないこと。
すべてのパッケージのインストール後にリブートする。
このパッケージのインストール後にリブートする。
HTTP プロキシホストを指定します。管理ファイルの設定と http_proxy 環境変数をオーバーライドします。
HTTPPROXY で指定したホストに接続するときに使用するポートを指定します。HTTPPROXY が設定されていない場合は、無視されます。
プロキシのホストとポートを指定するための URL 書式。管理ファイルの設定をオーバーライドします。
pkgadd がソフトウェアインストールのインスタンスを記録する場所。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
pkginfo(1)、pkgmk(1)、pkgparam(1)、pkgproto(1)、pkgtrans(1)、admin(5)、pkginfo(5)、attributes(7)、zones(7)、installf(8)、pkgadm(8)、pkgask(8)、pkgchk(8)、pkgrm(8)、removef(8)
パッケージをスプールディレクトリに転送するときは、–r、–n、および –a オプションを使用できません。
–r オプションを使用して、ファイル名だけでなくディレクトリ名も指定できます。このディレクトリには、関連するパッケージの名前を共有する多数の応答ファイルを格納できます。これは、たとえば、1 回の pkgadd 呼び出しで複数の対話型パッケージを追加するときに使用できます。この場合は、パッケージごとに応答ファイルが必要です。パッケージと同じ名前 (たとえば、pkinst1 や pkinst2) の応答ファイルを作成した場合は、–r オプションのあとに、これらの応答ファイルが存在するディレクトリを指定します。
–n オプションを指定した場合は、インストールを完了するために対話が必要になると、インストールが中断します。
デフォルトの admin ファイルの制限が厳しすぎる場合は、パッケージのインストールを完全に非対話形式で実行できるように管理ファイルを変更できます。詳細は、admin(5) を参照してください。
–d でパッケージストリームが指定され、そのストリーム内にデジタル署名が見つかった場合は、デフォルトの動作として、見つかった証明書と署名を検証しようとします。この動作は、admin ファイルの設定でオーバーライドできます。詳細は、admin(5) を参照してください。