Solaris 9 安装指南

附录 C 附加 SVR4 封装要求(参考)

本附录适用于需要使用定制 JumpStart 程序或 Solaris Live Upgrade 来安装或删除软件包(特别是第三方软件包)的系统管理员。遵循这些封装要求可使定制 JumpStart 安装具有非交互性,并可防止修改当前正在运行的系统,从而可以使用 Solaris Live Upgrade 进行升级。

封装要求概述

以下参考文档提供了封装要求的背景信息。

表 C–1 列出了本文档中适用于 Solaris Live Upgrade 或定制 JumpStart 程序的信息。

表 C–1 要求信息

安装方法 

记录在案的要求 

Solaris Live Upgrade  

定制 JumpStart 程序 

定制 JumpStart 程序和 Solaris Live Upgrade 非活动引导环境的要求

非活动引导环境是操作环境的副本,而不是当前运行系统的副本。由 Live Upgrade 或定制 JumpStart 程序使用的软件包必须遵循以下要求:

下表说明了非活动引导环境顺应性的要求。

$PKG_INSTALL_ROOT$BASEDIR 之间的差别概述

$PKG_INSTALL_ROOT 表示您要向其添加软件包的机器的根 (/) 文件系统的位置。该位置被设置为 pkgadd 命令的 -R 参数。例如,如果调用以下命令,则在软件包安装过程中 $PKG_INSTALL_ROOT 将成为 /a


# pkgadd -R /a SUNWvxvm

$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

如果使用以下命令安装软件包,则 ls 安装在 /a/opt/sbin/ls,而 ls2 安装为 /a/sbin/ls2


# pkgadd -R /a SUNWtest

Solaris Live Upgrade 非活动引导环境顺应性

在使用 Solaris Live Upgrade 以及创建新的引导环境时,请遵循以下准则以免出现问题。

可使用各种命令对这些创建、修改和删除文件的要求进行检验。例如,dircmpfssnap 命令可用于检验软件包是否运行正常。同时,ps 命令可用于测试守护程序的顺应性,方法是确保守护程序未被该软件包停止或启动。trusspkgadd -vpkgrm 命令可测试运行时软件包安装顺应性,但可能不会在所有的情况下都有效。在以下示例中,truss 命令除去所有只读的非 $TEMPDIR 访问,而仅显示对不在指定的非活动引导环境中的路径的非只读访问。


# TEMPDIR=/a; export TEMPDIR
# truss -t open /usr/sbin/pkgadd -R ${TEMPDIR} SUNWvxvm \
2>&1> /dev/null | grep -v O_RDONLY | grep -v \
'open("'${TEMPDIR}

有关在本节中引用的命令的详细信息,请参见手册页 dircmp(1)fssnap(1M)ps(1)truss(1)pkgadd(1M)pkgchk(1M)pkgrm(1M)

与定制 JumpStart 程序的升级顺应性

定制 JumpStart 程序顺应性能够确保软件包可作为传统 Solaris 安装公用程序的一部分被添加和删除,这些公用程序包括:

定制 JumpStart 程序顺应性还可确保软件包可参与 Solaris 升级。要与定制 JumpStart 程序兼容,软件包也必须符合定制 JumpStart 程序和 Solaris Live Upgrade 非活动引导环境的要求中说明的非活动引导环境的要求。

为了能够有效地使用定制 JumpStart 程序,软件包必须在不提示用户输入信息的情况下添加或删除。为了禁止用户交互,请使用 pkgadd 命令 -a 选项来设置一个新的管理文件。-a 选项将定义一个安装管理文件,该文件用来替代缺省的管理文件。使用缺省文件时可能会导致提示用户输入更多信息。您可以创建一个管理文件,该文件指示 pkgadd 应绕过这些检查并安装软件包,无需用户确认。有关详细信息,请参见手册页 admin( 4)pkgadd( 1M)

以下示例显示了如何使用 pkgadd 管理文件。

下面是一个使用了 pkgadd 公用程序的安装管理文件的示例,它几乎不需要进行用户交互。除非软件包需要的空间大于系统中的可用空间,否则 pkgadd 公用程序将使用此文件并安装软件包,而不会提示用户输入更多的信息。

mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
space=ask
setuid=nocheck
confiict=nocheck
action=nocheck
basedir=default