$PKG_INSTALL_ROOT は、パッケージを追加しようとするマシンのルート (/) ファイルシステムの場所です。この値は、pkgadd コマンドの -R 引数の後にセットされます。たとえば、次のコマンドを実行します。
# pkgadd -R /a SUNWvxvm |
この場合、パッケージのインストール時に $PKG_INSTALL_ROOT の値は /a にセットされます。
$BASEDIR は、再配置可能なパッケージオブジェクトがインストールされる再配置可能なベースディレクトリを指しています。 ここにインストールされるのは、再配置可能オブジェクトだけです。再配置可能でないオブジェクト (pkgmap ファイルに 絶対パスが指定されているオブジェクト) は、代替ルート (/) の相対パスにインストールされます。$BASEDIR との相対パスにはインストールされません。再配置可能なオブジェクトがないパッケージは、絶対パッケージ (非再配置可能) と呼ばれます。その場合、$BASEDIR は未定義であるため、これをパッケージに添付されているスクリプトで使用することはできません。
たとえば、パッケージの pkgmap ファイルに次のエントリがあるとします。
1 f none sbin/ls 0555 root sys 3541 12322 1002918510 1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332 |
さらに、pkginfo ファイルには、 $BASEDIR が次のように指定されているとします。
BASEDIR=/opt |
このパッケージを次のコマンドでインストールします。
# pkgadd -R /a SUNWtest |
ls は /a/opt/sbin/ls としてインストールされますが、ls2 は /a/sbin/ls2 としてインストールされます。