pkgask コマンド

目的

要求スクリプトへの応答を保管します。

構文

pkgask [ -d Device] -r Response [ Pkginst [ Pkginst [. . .]]

説明

pkgask を使用すると、管理者は、 対話式パッケージ (要求スクリプトを含むもの) またはパッケージのセットへの応答を保管することができます。 セットはセット・インストール・パッケージ (SIP) と呼ばれる特殊目的のパッケージと、 そのセットのメンバーである 1 つまたは複数のパッケージのコレクションからなります。 SIP はセットのインストールを制御します。

pkgask を起動すると、 インストール時に入力として使用される Response ファイルが生成されます。 この Response ファイルを使用すると、 パッケージに必要なすべての情報が既にファイルに含まれるため、 インストール時に対話を行わずに済みます。

pkgask を実行すると、応答ファイルのほかに以下のディレクトリーが作成されます。
項目 説明
/ptfvars パッケージに関する変数が含まれます。
/fileinfo パッケージに関するチェックサム情報が含まれます。
/oldfiles 以前のバージョンのパッケージのバックアップが含まれます。
非対話式で他のシステムにパッケージをインストールするためには、 これらのすべてのファイルおよびディレクトリーをターゲット・システムにコピーしなければなりません。
注: 例えば、非対話式で他のパッケージをインストールするなどの目的で、 これらのディレクトリーのいずれかを上書きした場合、 最初にオリジナルのディレクトリー内容を復元しなければ、最初のパッケージを正常に除去できません。

-r フラグを使用して、 ファイル名と一緒にディレクトリー名を指示できます。 ディレクトリー名を使用すると、非常に多くの Response ファイルを作成し、 各ファイルで、関連付けられるパッケージの名前を共用できます。 この方法は、例えば、pkgadd を 1 回起動するだけで複数の対話式パッケージを追加できるようにしたい 場合などに使用できます。 それぞれのパッケージに Response ファイルが必要です。 パッケージ・インスタンスと同じ名前の複数の応答ファイルを作成する ためには、pkgask コマンドで ファイルの作成先ディレクトリーの名前を指定し、複数のインスタンス名を指定してください。 パッケージをインストールするときには、 このディレクトリーを pkgadd コマンドで指定できます。

フラグ

項目 説明
-d Device Device でパッケージの要求スクリプトを実行します。 Device には、 ディレクトリーへの絶対パス名 (/var/tmp など) を 指定することも、"-" (これは標準入力から読み取られるデータ・ストリーム形式のパッケージを示します) を 指定することもできます。 デフォルト・デバイスはインストール先のスプール・ディレクトリー (/var/spool/pkg) です。
-r Response ファイルまたはディレクトリー Response を識別します。 これは、パッケージ要求スクリプトとの対話への応答を含めるために作成する必要があります。 このファイル、またはファイルのディレクトリーは、後で pkgadd コマンドへの 入力として使用できます (pkgadd コマンドを参照してください)。 Pkginst がパッケージである場合、Response には 絶対パス名またはディレクトリーを指定することができ、Pkginst が SIP である場合、Response にはディレクトリーを指定しなければなりません。
Pkginst パッケージ/セット名を省略形で指定するために使用する短文字列を定義します。 (「パッケージ・インスタンス」という用語は、厳密な意味で使用されているのではなく、 インスタンス ID が指定されていないものも含め、Pkginst の すべてのインスタンス化を指します。)

パッケージ名の省略形を作成するには、"PKG" パラメーターでその省略形を指定してください。 例えば、Advanced Commands パッケージに "cmds" という省略形を割り当てたい 場合には、PKG=cmds と入力してください。

Pkginst で SIP を指定したときには、 そのセットのメンバーであるパッケージの要求スクリプトが (存在する場合には) すべて実行され、 それによって作成された応答ファイルは、-r フラグで指定されたディレクトリーに入ります。

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

注: コマンド・ラインに Pkginst を 指定しないで pkgask を起動すると、 デバイスに少なくとも 1 つ SIP が存在している場合には、セットの名前だけが表示されます。 したがって、セットのメンバーでないパッケージがある場合、それらのパッケージは、 その Pkginst 名がコマンド・ラインで指定されていなければ参照できません。

終了状況

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

ファイル

項目 説明
/var/spool/pkg デフォルトのスプール・ディレクトリー