必須の情報ファイルである pkginfo および prototype では、変数を使用できます。また、パッケージの構築に使用する pkgmk コマンドには、オプションを使用することもできます。これらのファイルおよびコマンドについてこの章で説明されているように、変数に関しては、よりコンテキストに依存した情報が提供されます。ただし、パッケージの構築を始める前に、ほかにどのような変数があるか、またその変数がパッケージの構築にどのような影響を与えるかについて理解しておくことをおすすめします。
変数には次の 2 種類があります。
pkginfo ファイルでは、変数の定義は PARAM=value という形式になります。PARAM の最初の文字は大文字です。これらの変数は、インストール時にのみ評価されます。これらの変数を評価できない場合、pkgadd コマンドはエラーを返して異常終了します。
prototype ファイルでは、変数の定義は !PARAM=value または $variable の形式にできます。PARAM と variable はともに、大文字または小文字のどちらからでも始めることができます。構築時に値が既知の変数だけが評価されます。PARAM または variable が、構築変数またはインストール変数であり、その値が構築時に不明な場合、pkgmk コマンドはエラーを返して異常終了します。
また、PARAM=value は、オプションとして pkgmk コマンドに組み込むことができます。このオプションは、有効範囲がパッケージ全体に対してグローバルであるという点を除いて、prototype ファイルの中に指定されたものと同じように機能します。prototype ファイルでの !PARAM=value の定義は、そのファイルと、そのファイルで定義されているパッケージの部分に対してローカルです。
PARAM がインストール変数であり、variable が既知の値を持つインストール変数または構築変数である場合、その定義が pkgmk コマンドによって pkginfo ファイルに挿入され、その定義をインストール時に使用できるようになります。ただし、pkgmk コマンドは、prototype ファイルに指定されたパス名にある PARAM を評価しません。
次の表に、変数の指定形式、場所、および有効範囲をまとめています。
表 2–2 パッケージ環境変数の概要
変数が定義されている場所 |
変数の定義形式 |
定義される変数の種類 |
変数が評価されるタイミング |
変数が評価される場所 |
変数が置換される可能性のある項目 |
---|---|---|---|---|---|
pkginfo ファイル |
PARAM=value |
構築 |
構築時に無視される |
なし |
なし |
インストール |
インストール時 |
pkgmap ファイル内 |
owner、group、path、またはリンクターゲット |
|
|
prototype ファイル |
!PARAM=value |
構築 |
構築時 |
prototype ファイルおよび任意の組み込みファイル内 |
mode、owner、group、またはpath |
インストール |
構築時 |
prototype ファイルおよび任意の組み込みファイル内 |
!search コマンドと !command コマンドの使用時のみ |
|
|
pkgmk コマンド行 |
PARAM=value |
構築 |
構築時 |
prototype ファイル内 |
mode、owner、group、またはpath |
インストール |
構築時 |
prototype ファイル内 |
!search コマンド使用時のみ |
|
|
インストール時 |
pkgmap ファイル内 |
owner、group、path、またはリンクターゲット |
|
|
|