应用程序包开发者指南

使软件包可远程安装

所有软件包都必须可远程安装。可远程安装意味着您不假定安装软件包的管理员正在向运行 pkgadd 命令的系统的根 (/) 文件系统进行安装。如果在某个过程脚本中,需要到达目标系统的 /etc/vfstab 文件,则需要使用 PKG_INSTALL_ROOT 环境变量。换句话说,路径名 /etc/vfstab 会将您引导至运行 pkgadd 命令的系统的 /etc/vfstab 文件,但管理员可能正在向位于 /export/root/client3 的客户机进行安装。路径 ${PKG_INSTALL_ROOT}/etc/vfstab 肯定能够将您引导至目标文件系统。

示例-安装到客户机系统

在此示例中,SUNWstuf 软件包被安装到 client3,该客户机在其根 (/) 文件系统中配置有 /opt 。此软件包的另一个版本已经安装在 client3 上,并且基目录从管理文件 thisadmin 中设置为 basedir=/opt/$PKGINST。(有关管理文件的更多信息,请参见缺省管理文件。)服务器上执行的 pkgadd 命令是:


# pkgadd -a thisadmin -R /export/root/client3 SUNWstuf

下表列出传递给过程脚本的环境变量及其值。

表 6–1 传递给过程脚本的值

环境变量 

值 

PKGINST

SUNWstuf.2

PKG_INSTALL_ROOT

/export/root/client3

CLIENT_BASEDIR

/opt/SUNWstuf.2

BASEDIR

/export/root/client3/opt/SUNWstuf.2

示例-安装到服务器或独立系统

要在与上一个示例相同的环境下安装到服务器或独立系统,所使用的命令是:


# pkgadd -a thisadmin SUNWstuf

下表列出传递给过程脚本的环境变量及其值。

表 6–2 传递给过程脚本的值

环境变量 

值 

PKGINST

SUNWstuf.2

PKG_INSTALL_ROOT

未定义。 

CLIENT_BASEDIR

/opt/SUNWstuf.2

BASEDIR

/opt/SUNWstuf.2

示例-挂载共享文件系统

假定 SUNWstuf 软件包在服务器上的 /export/SUNWstuf/share 创建并共享了一个文件系统。在将软件包安装到客户机系统时,需要更新客户机系统的 /etc/vfstab 文件以挂载这一共享文件系统。在这种情况下可以使用 CLIENT_BASEDIR 变量。

客户机上的条目需要根据客户机的文件系统呈现挂载点。无论安装是从服务器进行还是从客户机进行,都应该正确构建该行。假定服务器的系统名是 $SERVER。您可以转至 $PKG_INSTALL_ROOT/etc/vfstab,并使用 sedawk 命令为客户机的 /etc/vfstab 文件构建以下行。


$SERVER:/export/SUNWstuf/share - $CLIENT_BASEDIR/usr nfs - yes ro

例如,对于服务器 universe 和客户机系统 client9,客户机系统的 /etc/vfstab 文件中的该行可能如下所示:


universe:/export/SUNWstuf/share - /opt/SUNWstuf.2/usr nfs - yes ro

正确使用这些参数时,该条目始终挂载客户机的文件系统,而无论它是在本地构建还是从服务器构建。