Se puede crear una secuencia de finalización 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 finalización, se reduce el tiempo y se garantiza la coherencia en los paquetes y las modificaciones que se instalen en sistemas diferentes del sitio.
Al utilizar los comandos pkgadd(1M) o patchadd(1M) en secuencias de comandos de finalización, emplee la opción -R para especificar /a como ruta root.
El Ejemplo 4–3muestra un ejemplo de una secuencia de comandos de finalización que añade paquetes.
El Ejemplo 4–4 muestra una secuencia de finalización que agrega revisiones.
#!/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 los comandos de este ejemplo:
El siguiente comando monta un directorio en un servidor que contiene el paquete que se instala.
mount -f nfs sherlock:/export/package ${MNT} |
El siguiente comando crea un archivo de administración de paquetes temporal, admin para obligar al comando 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 |
El comando pkgadd mostrado 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 de root.
/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 el comando chroot(1M) con los comandos pkgadd y patchadd en el entorno de secuencias de finalización. 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 root /a antes de emitir el comando chroot.
Para crear un archivo /etc/mnttab ficticio, agregue la línea siguiente a la secuencia de comandos de finalización:
cp /etc/mnttab /a/etc/mnttab