Une racine alternative (/) est une copie de l'environnement d'exploitation, et non du système actif. Un module destiné à être utilisé par Live Upgrade ou par le programme JumpStart personnalisé doit répondre aux conditions suivantes :
Permettre une mise à jour ou une installation JumpStart personnalisée sans intervention de l'utilisateur.
Ne requérir aucune modification du système actif, contrairement à Solaris Live Upgrade.
La liste suivante détaille les conditions relatives à la racine aternative (/).
Pour que le système d'exploitation s'installe avec succès, les modules doivent reconnaître et respecter les indicateurs de la racine alternative (/).
Les modules peuvent contenir des chemins absolus dans leur fichier pkgmap (structure du module). Si ces fichiers existent, ils sont rédigés en fonction de l'option - R de la commande pkgadd. Les modules qui contiennent à la fois des chemins absolus et relatifs (mobiles) peuvent également être installés dans une racine alternative (/). $PKG_INSTALL_ROOT est ajouté au début des fichiers absolus et relatifs, de sorte que tous les chemins sont reproduits correctement lors de l'installation par le biais de pkgadd.
Les modules installés à l'aide de pkgadd - R ou retirés à l'aide de pkgrm - R ne doivent pas altérer le système d'exploitation actif.
Aucun script de procédure fourni avec les modules installés à l'aide de pkgadd -R ou retirés à l'aide de pkgrm -R ne doit altérer le système d'exploitation actif. Tout script d'installation fourni par vos soins doit faire référence au répertoire ou au fichier avec la variable $PKG_INSTALL_ROOT en préfixe. Le module doit rédiger tous les répertoires et fichiers à l'aide du préfixe $PKG_INSTALL_ROOT. Il ne doit pas supprimer les répertoires sans préfixe $PKG_INSTALL_ROOT. Le Tableau C-2 contient des exemples de syntaxe correcte.
Tableau C-2 Exemples de syntaxe de script d'installation
$PKG_INSTALL_ROOT est l'emplacement du système de fichiers racine (/) de la machine sur laquelle vous ajoutez le module. Il est paramétré à l'argument -R de la commande pkgadd. Exemple : si la commande ci-après est invoquée, $PKG_INSTALL_ROOT sera alors ajouté au début de /a lors de l'installation du module.
# pkgadd -R /a SUNWvxvm |
$BASEDIR indique le répertoire de base mobile dans lequel les objets mobiles du module sont installés. Seuls les objets mobiles y sont installés. Les objets fixes (possédant des chemins absolus dans le fichier pkgmap) sont toujours installés en fonction de la racine alternative (/), mais pas en fonction de $BASEDIR. Si un module ne possède pas d'objets mobiles, il est dit absolu (fixe), $BASEDIR n'est pas défini et ne peut contenir aucun script de procédure du module.
Par exemple, imaginez que le fichier pkgmap d'un module comporte deux entrées :
1 f none sbin/ls 0555 root sys 3541 12322 1002918510 1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332 |
Par ailleurs, le fichier pkginfo contient une indication pour $BASEDIR :
BASEDIR=/opt |
Si ce module est installé à l'aide de la commande ci-dessous, ls est installé dans /a/opt/sbin/ls, mais ls2 s'installe sous la forme /a/sbin/ls2.
# pkgadd -R /a SUNWtest |