Pour définir l'installation sélective de cette étude de cas, vous devez effectuer les opérations suivantes :
Définir une classe pour chaque type d'objet pouvant être installé.
Dans cette étude de cas, les trois types d'objet sont les fichiers exécutables du package, les pages de manuel et les exécutablesemacs. Chaque type dispose de sa propre classe : respectivement bin, man et emacs. Notez que dans le fichier prototype, tous les fichiers d'objets appartiennent à une de ces trois classes.
Donner au paramètre CLASSES du fichier pkginfo la valeur nulle.
En règle générale lorsque vous définissez une classe, vous devez indiquer cette classe dans le paramètre CLASSES du fichier pkginfo. Aucun objet de cette classe ne peut sinon être installé. Dans cette étude de cas, la valeur de ce paramètre est au départ nulle, signifiant qu'aucun objet ne peut être installé. Le paramètre CLASSES est ensuite remplacé via le script request, en fonction des choix de l'administrateur. De cette façon, le paramètre CLASSES ne contient que la valeur des types d'objet que l'administrateur souhaite installer.
Il est recommandé de donner aux paramètres une valeur par défaut. Si le package contient par exemple des composants communs aux trois types d'objet, vous pouvez les attribuer à la classe none et donner au paramètre CLASSES la valeur none.
Insérer les noms de chemin paramétriques dans le fichier prototype.
Le script request donne à ces variables d'environnement la valeur fournie par l'administrateur. La commande pkgadd résout ensuite ces variables d'environnement lors de la phase d'installation pour connaître l'emplacement de l'installation du package.
Les trois variables d'environnement utilisées dans cet exemple sont définies sur leur valeur par défaut dans le fichier pkginfo et ont les rôles suivants :
$NCMPBIN définit l'emplacement des exécutables des objets ;
$NCMPMAN définit l'emplacement des pages de manuel ;
$EMACS définit l'emplacement des exécutables emacs.
L'exemple de fichier prototype illustre la manière de définir les noms de chemin des objets avec des variables.
Créer un script request pour demander à l'administrateur quelles parties du package doivent être installées et à quel endroit les placer.
Le script request de ce package pose deux questions à l'administrateur :
Cette partie du package doit-elle être installée ?
Lorsque la réponse est oui, le nom de classe approprié est ajouté au paramètre CLASSES. Par exemple, lorsque l'administrateur choisit d'installer les pages de manuel associées au package, la classe man est ajoutée au paramètre CLASSES.
Dans ce cas, à quel endroit cette partie du package doit-elle être placée ?
La variable d'environnement appropriée est définie sur la réponse à cette question. Dans l'exemple des pages de manuel, la variable $NCMPMAN prend la valeur donnée en réponse.
Ce deux questions sont réitérées pour chacun de trois types d'objet.
À la fin du script request, les paramètres sont mis à la disposition de l'environnement d'installation pour la commande pkgadd et tout autre script d'empaquetage. Le script request effectue cette opération en enregistrant ces définitions dans le fichier fourni par l'utilitaire d'appel. Aucun autre script n'est fourni pour cette étude de cas.
Remarquez dans ce script request que les questions sont générées par les outils de validation des données ckyorn et ckpath. Pour plus d'informations sur ces outils, reportez-vous à ckyorn(1) et ckpath(1).