Solaris 9 安装指南

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

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


注意:

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


封装要求概述

要使定制 JumpStart 程序和 Solaris Live Upgrade 正常工作,软件包必须符合 SvR4 封装要求。 《Application Packaging Developer's Guide》提供了更多关于封装要求和术语定义的特定信息。主要参见Application Packaging Developer's Guide》中的 “Advanced Package Creation Techniques”

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

有关在本附录中引用的命令的详细信息,请参见手册页 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 参数设置。例如,如果调用以下命令,则软件包安装过程中 $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 命令可测试运行时软件包安装顺应性,但可能不会在所有情况下都有效。在以下示例中,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)