pkgadd コマンド

目的

ソフトウェア・パッケージまたはセットをシステムに転送します。

構文

ソフトウェア・パッケージをインストールする

pkgadd [ -d Device] [ -r Response] [ -n ] [ -a Admin] [ -P Path ] [ Pkginst1 [ Pkginst2 [. . .]]]

ソフトウェア・パッケージを指定されたスプール・ディレクトリーにコピーする

pkgadd -s Spool [ -d Device] [ Pkginst1 [ Pkginst2 [. . .]]]

説明

pkgadd は、ソフトウェア・パッケージまたはセットの内容を、 システムにインストールするために配布メディアまたはディレクトリーから転送します。 パッケージは、個別にインストールできる、関連するファイルおよび実行可能ファイルの集合です。 セットはセット・インストール・パッケージ (SIP) と呼ばれる特殊目的のパッケージと、 そのセットのメンバーである 1 つまたは複数のパッケージのコレクションからなります。 SIP はセットのインストールを制御します。

pkgadd は、コマンド・ラインにリストされたすべてのパッケージが インストール・メディアに含まれているかどうかを検査します。 リストされたパッケージのいずれかが存在しない場合には、システムは変更されません。 つまり、リストされたどのパッケージもインストールされません。
注: pkgadd コマンドを正常に実行するためには、root 以外のユーザーは以下の条件を満たしていなければなりません。
  1. ユーザーは、pkgmap ファイル内に指定されたパスへの書き込み許可を持っていなければならない。
  2. 現在の user:group が、pkgmap ファイル内で指定された user:group と一致しなければならない。
  3. ユーザーは、/var/sadm/install および /var/sadm/pkg ディレクトリーへの書き込み許可を持っていなければならない。

-d フラグを指定しないで使用した場合、pkgadd は デフォルト・スプール・ディレクトリーからパッケージを探します (/var/spool/pkg)。 -s フラグを指定して使用した場合には、 パッケージをインストールする代わりにスプール・ディレクトリーに書き込みます。

エラー・メッセージはすべてログに記録されます。さらに、pkgadd は、終了するときに (デフォルトでは "root" にあてて) メールを送信します。 このメールには、すべてのエラー・メッセージが示され、また完全にインストールされたパッケージ、 部分的にインストールされたパッケージ、またはまったくインストールされなかったパッケージが要約されます。

フラグ

項目 説明
-d Device Device からパッケージ/セットをインストールまたはコピーします。 Device には、ディレクトリー、ファイル、または名前付きパイプへの絶対パス名 を指定することも、"-" (これは標準入力から読み取られるデータ・ストリーム形式のパッケージを示します) を 指定することもできます。 デフォルト・デバイスはインストール先のスプール・ディレクトリー (/var/spool/pkg) です。
-r Response 前に対話モードで行われた pkgask セッション (pkgask コマンドを 参照) 中に「要求スクリプト」によって出された質問に対する応答を含む、 ファイルまたはディレクトリー Response を識別します。 Pkginst がパッケージである場合、Response には 絶対パス名またはディレクトリーを指定することができ、Pkginst が SIP である場合、Response にはディレクトリーを指定しなければなりません。
-n インストールが非対話式モードで行われることを指定します。 デフォルト・モードは対話式です。
-a Admin インストール時の検査 (スペース・サイズ、システム状態などの検査) を行うかどうかを指定する ために、デフォルトの管理ファイルの代わりに使用される、 インストール先の管理ファイル Admin を定義します。 "none" というトークンを指定すると、admin ファイルの使用がオーバーライドされ、 ユーザーとの対話が強制されます。 絶対パス名を指定しない限り、pkgadd/var/sadm/install/admin ディレクトリー からファイルを探します。 デフォルトでは、そのディレクトリー内のファイル default が使用されます。 default は、パッケージをインストールするための十分なスペースがあるかどうか、 または他のパッケージへの依存性があるかどうかを調べる場合を除き、 検査が行われないことを指定します。 Pkginst が SIP である場合には、-a フラグは使用できません。
-P Path インストールのための代替ルート・ディレクトリー・パスを指定します。ファイルはこの場所の下にインストールされます。
Pkginst パッケージ/セット名の省略形を指定するために使用する短文字列を定義します。 (「パッケージ・インスタンス」という用語は、厳密な意味で使用されているのではなく、Pkginst の すべてのインスタンス化を指します。) pkginfo コマンドおよび pkginfo ファイル・フォーマットを参照してください。

Pkginst が SIP である場合、SIP 制御は、 要求スクリプトおよびプリインストール・スクリプトを使用して、 セットのインストールを制御します。 ユーザーに応答の入力をプロンプト指示したり適切なアクションを行ったりするのは、 パッケージ・インストール・ツールではなく、SIP 要求スクリプトです。 要求スクリプトが失敗した場合、SIP だけが処理されます。

パッケージのすべてのインスタンスを指示するには、シェルが "*" 文字を解釈しないようにするために、 単一引用符でコマンド・ラインを囲んで 'Pkginst.*' と指定してください。 ソース・メディアで使用可能なすべてのパッケージを参照するには、"all" というトークン を使用してください。

-s Spool パッケージをインストールする代わりに、ディレクトリー Spool に読み込みます。

特別な注意

-r フラグを使用すると、 ファイル名と一緒にディレクトリー名を指示できます。 ディレクトリーに非常に多くの Response ファイルを含めて、 各ファイルで、関連付けられるパッケージの名前を共用できます。 例えば、pkgadd を 1 回起動するだけで複数の対話式パッケージを追加する場合に、この方法を使用できます。 要求スクリプトを含む各パッケージには、Response ファイルが必要です。 パッケージと同じ名前の応答ファイル (例えば、Package1Package2) を 作成した場合、-r フラグの後に、 それらのファイルが入っているディレクトリーの名前を指定してください。

-n フラグを使用すると、インストールを完了させるためになんらかの対話が必要な場合には、 インストールは一時停止します。

コマンド・ラインに Pkginst を指定しないで pkgadd を起動すると、 メディアに少なくとも 1 つ SIP が存在している場合には、セットの名前だけが表示されます。 したがって、セットのメンバーであるパッケージとそうでないパッケージとを、 同じメディアには含めないでください。 このようにすると、セットのメンバーでないパッケージは、 その pkginst 名がコマンド・ラインで指定されていなければインストールできなくなります。

pkgadd コマンドは、Pkginst 内のファイルのうちで、 既にシステムにインストールされているものがあるかどうかを検査し、 既にインストールされているものがある場合には、インストールを続行する前にその事実を保管します。 その後、pkgadd はそのようなファイルをシステムにインストールしません。 いずれかのパッケージ・インストール・スクリプトがそのようなファイルを除去した場合、 パッケージ・インストールが完了すると、そのファイルはシステムに存在しなくなります。

pkgadd コマンドは、pkgmk で処理される前に 既に圧縮されていたファイル (つまり、.Z 形式のファイル) については 圧縮解除を行いません。

終了状況

このコマンドは、以下の終了値を戻します。
項目 説明
0 スクリプトの正常終了です。
1 致命的なエラーです。この時点でインストール・プロセスが終了します。
2 警告、またはエラー条件の可能性があります。 インストールは続行されます。 完了時に警告メッセージが表示されます。
3 スクリプトは中断されました。スクリプトが未完了のままになっている可能性があります。 インストールはこの時点で終了します。
4 スクリプトが中断されました (管理)。 インストールはこの時点で終了します。
5 スクリプトが中断されました (対話が必要でした)。 インストールはこの時点で終了します。
10 選択されたすべてのパッケージのインストールが完了してから、システムをリブートする必要があります。 (この値は、上記の 1 桁の終了コードのいずれかに追加されます。)
20 システムは現行パッケージのインストールが完了したら、すぐにリブートされなければなりません。 (この値は、上記の 1 桁の終了コードのいずれかに追加されます。)
77 セットのためのパッケージが選択されていません。
99 内部エラー

ファイル

項目 説明
/var/sadm/install/admin/default デフォルトのパッケージ管理ファイル
/var/sadm/install/logs/pkginst.log エラー・メッセージ・ログ
/var/spool/pkg デフォルトのスプール・ディレクトリー