您可以建立一個結束程序檔,以在系統安裝了 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