您可以建立一個結束程序檔,以在系統安裝了 Solaris 軟體之後,自動加入套裝軟體或修補程式。藉由使用結束程序檔來加入套裝軟體,可以減少所需時間,並確保在您網站的不同系統上安裝的套裝軟體和修補程式一致。
當您在結束程序檔中使用 pkgadd(1M) 或 patchadd(1M) 指令時,請使用 -R 選項,將 /a 指定為根路徑。
#!/bin/sh
BASE=/a
MNT=/a/mnt
ADMIN_FILE=/a/tmp/admin
mkdir ${MNT}
mount -f nfs sherlock:/export/package ${MNT}
cat>${ADMIN_FILE} <<DONT_ASK
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} SUNWxyz
umount ${MNT}
rmdir ${MNT}
|
下面將描述此範例中的一些指令。
以下指令在伺服器上裝載包含要安裝的套裝軟體的目錄。
mount -f nfs sherlock:/export/package ${MNT}
|
以下指令建立一個臨時套裝軟體管理檔 admin,強制 pkgadd(1M) 指令在安裝套裝軟體時,不執行檢查或是提示問題。加入套裝軟體時,使用臨時套裝軟體管理檔,不需要您的參與便可完成安裝。
cat>${ADMIN_FILE} <<DONT_ASK
|
下面的 pkgadd 指令使用 -a 選項指定套裝軟體管理檔,並使用 -R 選項指定根路徑,從而達到加入該套裝軟體的目的。
/usr/sbin/pkgadd -a ${ADMIN_FILE} -d ${MNT} -R ${BASE} SUNWxyz
|
#!/bin/sh ######## # # USER-CONFIGURABLE OPTIONS # ######## # The location of the patches to add to the system after it's installed. # The OS rev (5.x) and the architecture (`mach`) will be added to the # root. For example, /foo on a 8 SPARC would turn into /foo/5.8/sparc LUPATCHHOST=ins3525-svr LUPATCHPATHROOT=/export/solaris/patchdb ######### # # NO USER-SERVICEABLE PARTS PAST THIS POINT # ######### BASEDIR=/a # Figure out the source and target OS versions echo Determining OS revisions... SRCREV=`uname -r` echo Source $SRCREV LUPATCHPATH=$LUPATCHPATHROOT/$SRCREV/`mach` # # Add the patches needed # echo Adding OS patches mount $LUPATCHHOST:$LUPATCHPATH /mnt>/dev/null 2>&1 if [ $? = 0 ] ; then for patch in `cat /mnt/*Recommended/patch_order` ; do (cd /mnt/*Recommended/$patch ; echo yes | patchadd -u -d -R $BASEDIR .) done cd /tmp umount /mnt else echo "No patches found" if |
以往,chroot(1M) 在結束程序檔環境中,與 pkgadd 和 patchadd 等指令一同使用。只有在很少數的情況下,某些套裝軟體或修補程式才不使用 -R 選項。您必須在 /a 根路徑中建立一個虛擬 /etc/mnttab 檔案,然後再發出 chroot 指令。
若要建立一個虛擬 /etc/mnttab 檔案,請將下行加入您的結束程序檔中:
cp /etc/mnttab /a/etc/mnttab