Installationshandbok för Solaris 10: Anpassad JumpStart och avancerade installationer

Lägga till paket eller korrigeringsfiler med ett slutskript

Du kan skriva ett slutskript som automatiskt lägger till paket eller korrigeringsfiler när Solaris har installerats på ett system. Installationen går snabbare om du lägger till paket i ett slutskript, och du ser dessutom till att platsens olika system är konsekvent utformade beträffande paket och korrigeringsfiler.

När du använder kommandona pkgadd(1M) eller patchadd(1M) i slutskript använder du alternativet -R för att ange /a som rotsökväg.


Exempel 7–3 Lägga till paket med ett slutskript

  #!/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}

Följande är beskrivningar av några kommandon för det här exemplet.



Exempel 7–4 Lägga till korrigeringsfiler med ett slutskript

 #!/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


Obs! –

Tidigare användes kommandot chroot(1M) tillsammans med kommandona pkgadd och patchadd i slutskriptsmiljön. I sällsynta fall går det inte att använda alternativet -R med vissa paket eller korrigeringsfiler. Du måste skapa slaskfilen /etc/mnttab i rotsökvägen /a innan du kör kommandot chroot.

Du skapar slaskfilen /etc/mnttab genom att lägga till följande rad i slutskriptet:

cp /etc/mnttab /a/etc/mnttab