Guide d'installation Solaris 9

Ajout de modules ou de patchs à l'aide d'un script de fin

Vous pouvez créer un script de fin qui procède à l'ajout automatique de modules ou de patchs lorsque le logiciel Solaris est installé sur un système donné. La procédure d'ajout de modules à l'aide d'un script de fin vous permet de gagner du temps et garantit la cohérence d'installation de modules et de patchs sur les différents systèmes de votre organisation.

Lorsque vous utilisez la commande pkgadd(1M) ou patchadd(1M) dans des scripts de fin, utilisez l'option - R pour définir /a comme chemin d'accès à la racine.


Exemple 24–2 Ajout de modules à l'aide d'un script de fin

  #!/bin/sh

  BASE=/a
  MNT=/a/mnt
  ADMIN_FILE=/a/tmp/admin

  mkdir ${MNT}
  mount -f nfs sherlock:/export/package ${MNT}1
  cat>${ADMIN_FILE} <<DONT_ASK2
  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} SUNWxyz3
  umount ${MNT}
  rmdir ${MNT}
  1. Monte un répertoire sur un serveur, dans lequel figure le module que vous souhaitez installer.

  2. Crée un fichier temporaire d'administration des modules, nommé admin, pour éviter que la commande pkgadd(1M) n'effectue des vérifications ou ne vous demande de répondre à des questions en cours d'installation d'un module. Utilisez ce fichier temporaire d'administration des modules pour que l'ajout de modules se fasse sans intervention de votre part.

  3. Ajoute le module à l'aide de l'option -a, qui spécifie le fichier d'administration des modules, et de l'option -R, qui spécifie le chemin d'accès à la racine.



Exemple 24–3 Ajout de patchs à l'aide d'un script de fin

 #!/bin/sh

########
#
# OPTIONS CONFIGURABLES PAR L'UTILISATEUR
#
########

# L'emplacement des patchs à ajouter au système après son installation.
# Le système d'exploitation rév. (5.x) et l'architecture (`mach`) vont être ajoutés à la racine.
Par exemple, /foo sur un SPARC 2.6 deviendra /foo/5.6/sparc
LUPATCHHOST=ins3525-svr
LUPATCHPATHROOT=/export/solaris/patchdb
#########
#
# PASSE CE POINT, AUCUNE OPTION MODIFIABLE PAR L'UTILISATEUR
#
#########

BASEDIR=/a

# Détermine la source et la cible des versions du système d'exploitation
echo Determining OS revisions...
SRCREV=`uname -r`
echo Source $SRCREV

LUPATCHPATH=$LUPATCHPATHROOT/$SRCREV/`mach`

#
# Ajoute les patchs requis
#
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


Remarque :

jusqu'à présent, la commande chroot(1M) était associée aux commandes pkgadd et patchadd dans l'environnement des scripts de fin. Il arrive que certains modules ou patchs soient incompatibles avec l'option -R. Dans ce cas, vous devez créer un fichier /etc/mnttab fictif dans le chemin d'accès à la racine /a avant d'exécuter la commande chroot.

Pour créer un fichier /etc/mnttab fictif, ajoutez la ligne suivante dans votre script de fin :

cp /etc/mnttab /a/etc/mnttab