Solaris 9 安装指南

$PKG_INSTALL_ROOT$BASEDIR 之间的差异概述

$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