$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。