Se puede crear una secuencia de fin para que agregue paquetes o modificaciones automáticamente después de instalar el software Solaris en el sistema. Al agregar paquetes con una secuencia de fin, se reduce el tiempo y se garantiza la coherencia en los paquetes y las modificaciones que se instalen en sistemas diferentes de la sede.
Al usar las órdenespkgadd(1M) o patchadd(1M) en las secuencias de fin, use la opción -R para especificar /a como ruta raíz.
El Ejemplo 27–2 muestra una secuencia de fin que agrega paquetes.
El Ejemplo 27–3 muestra una secuencia de fin que agrega modificaciones.
#!/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} |
A continuación, se describen a órdenes de este ejemplo:
La siguiente orden monta un directorio en un servidor que contiene el paquete que se instala.
mount -f nfs sherlock:/export/package ${MNT} |
La siguiente orden crea un archivo de administración de paquetes temporal, admin, para obligar a la orden pkgadd(1M) a que no realice comprobaciones ni haga preguntas durante la instalación de un paquete. El archivo temporal de administración de paquetes se utiliza para realizar una instalación automática durante la adición de paquetes.
cat >${ADMIN_FILE} <<DONT_ASK |
La orden pkgadd mostrada a continuación agrega el paquete utilizando la opción -a, que especifica el archivo de administración del paquete, y la opción -R, que especifica la ruta hacia la raíz.
/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 |
Antes se usaba la orden chroot(1M) con las órdenes pkgadd y patchadd en el entorno de secuencias de fin. En raras ocasiones, algunos paquetes o modificaciones no funcionan con la opción -R. Debe crear un archivo /etc/mnttab ficticio en la ruta de raíz /a antes de emitir la orden chroot.
Para crear un archivo /etc/mnttab ficticio, agregue la línea siguiente a la secuencia de inicio:
cp /etc/mnttab /a/etc/mnttab