Solaris 9 安装指南

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

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


注意:

替换根 (/) 是操作环境的副本,而不是当前正在运行的系统的副本。


封装要求概述

要使定制 JumpStart 程序和 Solaris Live Upgrade 正常工作,软件包必须符合 SvR4 封装要求。《应用程序封装开发者指南》提供了有关封装要求和术语定义的更具体信息,请特别参见以下章节: "Advanced Package Creation Techniques" in Application Packaging Developer's Guide

有关添加和删除软件包以及安装管理文件的基本信息,请参见"Managing Software (Overview)" in System Administration Guide: Basic Administration。请参见特定的手册页。

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

表 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 参数。例如,如果调用以下命令:


# 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

Solaris Live Upgrade 替换引导环境顺应性

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

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


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

有关本部分所引用的命令的详细信息,请参见手册页 dircmp(1)fssnap(1M) ps(1) truss(1)

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

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

定制 JumpStart 程序顺应性还可确保软件包可参与 Solaris 升级。要获得定制 JumpStart 程序顺应性,软件包还必须遵循在 "定制 JumpStart 程序和 Solaris Live Upgrade 替换根 (/) 要求" 中概述的替换根 (/) 要求。

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

下面是一个安装管理文件的示例,该文件可防止 pkgadd 在安装软件包之前提示用户加以确认。

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

有关详细信息,请参见手册页 admin( 4)pkgadd( 1M)