dselect
appelle les scripts à partir des ses méthodes
d'installation quand il a vraiment besoin d'accéder aux données de la
distribution. Le programme noyau dselect
lui-même appelle juste
ces scripts et fournit le paquet et les interfaces de sélection des
méthodes d'accès. Les méthodes d'installation sont responsables de
l'appel approprié de dpkg
.Chaque méthode d'installation a trois scripts:
dselect
cherche les méthodes dans les répertoires
/usr/lib/dpkg/methods
et /usr/local/lib/dpkg/methods
.
.deb
peuvent
être trouvés, ou le lecteur de bande, le lecteur de disquette d'install.
Il devrait stocker la réponse sous /var/lib/dpkg/methods
- voir
ci-dessous. Si aucune liste de paquets n'est disponible, il devrait
proposer peut-être la scrutation des paquets disponibles.
Le script upgrade devrait obtenir une liste des paquets disponibles si
possible, et démarrer dpkg --update-avail, dpkg --merge-avail
et/ou dpkg --forget-old-unavail
pour la charger dans la base de
données des paquets disponibles de dpkg
et de dselect
.
Si aucune liste de paquets n'est disponible et si on a proposé à
l'utilisateur et qu'il a accepté l'option de scruter les fichiers
réels disponibles, alors la scrutation doit être faite ici, en utilisant
dpkg --record-avail
.
Le script install doit donner tous les fichiers .deb
disponibles
à dpkg -iGOEB
(ce qui est équivalent à dpkg --install --
refuse-downgrade --selected-only --skip-same-version --auto-
deconfigure
). L'option -R
(--recursive
) pour traverser
tous les sous-répertoires peut être utile ici.
Si un de ces scripts a besoin d'afficher un message à l'utilisateur, il
doit attendre que l'utilisateur tape 'return' avant de sortir afin que
dselect
ne rafraîchisse pas immédiatement l'écran.
Si un script de méthode réussi (retourne un statut de sortie à zéro)
dselect
retournera immédiatement au menu principal, avec l'option
suivante soulignée prêt pour être sélectionnée par l'utilisateur. S'il
échoue, dselect
affichera un message et attendra que
l'utilisateur tape 'return'.
Chaque groupe de méthodes implantées par le même ensemble de scripts
doit avoir un sous-répertoire /usr/lib/dpkg/methods
/groupe
ou /usr/local/lib/dpkg/methods
/groupe, contenant:
names
sera formaté comme une liste de ligne, chacune contenant:
sequence méthode résumésequence est un nombre sur 2 chiffres qui sera utilisé comme pour les préfixes de
rc.d
pour contrôler l'ordre dans le menu
principal. Dans le doute, utilise 50.
méthode est un nom qui est affiché par dselect
comme nom
de la méthode et qui sera passé à setup, update
et unpack
comme premier argument.
résumé est la brève chaîne de caractères de description pour le
menu de dselect
.
Chacun de ces trois scripts prend les mêmes trois arguments:
vardir, group et method. vardir est le répertoire
de base pour stocker l'état de dpkg
et de dselect
,
généralement /var/lib/dpkg
; ceci est passé afin que l'option
--admindir
de dselect
soit honorée.
Chaque option peut avoir une description étendue dans
desc.
option. Celui-ci doit être formaté comme la
partie description étendue comme une entrée du champ Description
décalée d'un caractère vers la gauche.
vardir/methods
existera, et un groupe de méthodes peut
utiliser un répertoire vardir/methods
/group pour
stocker ses états.
Le nom du groupe et le nom des méthodes doivent suivre les règles des identificateurs C.