可以创建一个结束脚本在 Solaris 软件安装在系统上之后自动添加软件包或修补程序。通过使用结束脚本添加软件包,可减少时间并确保安装在站点上不同系统中的软件包和修补程序的一致性。
在结束脚本中使用 pkgadd( 1M) 或 patchadd( 1M) 命令时,使用 -R 选项将 /a 指定为根路径。
实例 24–2 显示了添加软件包的结束脚本示例。
#!/bin/sh
BASE=/a
MNT=/a/mnt
ADMIN_FILE=/a/tmp/admin
mkdir ${MNT}
mount -f nfs sherlock:/export/package ${MNT}1
cat>${ADMIN_FILE} <<DONT_ASK2
mail=root
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=ask
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=default
DONT_ASK
/usr/sbin/pkgadd -a ${ADMIN_FILE} -d ${MNT} -R ${BASE} SUNWxyz3
umount ${MNT}
rmdir ${MNT}
|
将目录安装在包含要安装的软件包的服务器上。
创建一个临时软件包管理文件 admin,强迫 pkgadd( 1M) 命令在安装软件包时不执行检查或提示问题。当添加软件包时,请使用临时软件包管理文件以便不用干预安装。
添加软件包,使用 -a 选项指定软件包管理文件,使用 -R 选项指定根路径。
以前,chroot( 1M) 命令和结束脚本环境中的 pkgadd 和 patchadd 命令一起使用。在极少情况下,一些软件包或修补程序无法与 -R 选项一起工作。在发出 chroot 命令前,必须在 /a 根路径中创建一个伪 /etc/mnttab 文件。
要创建伪 /etc/mnttab 文件,将以下行添加到结束脚本中:
cp /etc/mnttab /a/etc/mnttab