Voici la nouvelle version a commenter (y compris orthographiquement,
cette fois) :

     7.        Questions sur les alternatives
     7.1.      Le probl�me
     7.2.      La solution GNU
     7.3.      La solution Debian
     7.4.      update-alternatives, sa vie, son oeuvre
     7.5.      Les probl�mes avec update-alternatives
     7.6.      Et comment faire les r�glages pour chaque utilisateur ?



7. Questions sur les alternatives
---------------------------------


7.1. Le probl�me
----------------

     Souvent, il existe plusieurs programmes qui rendent le m�me service,
     et le choix de l'un ou de l'autre est une question personnelle.  Par
     exemple, pour visionner un fichier texte, on peut choisir `more',
     `less' ou `most'.  Ils permettent tous de faire plus ou moins la m�me
     chose, mais ont un feeling diff�rent.  Quand on les appelle
     directement, le probl�me ne se pose pas, on prend celui qu'on veut,
     mais comment dire � la commande 'man' qu'on veut qu'elle utilise tel
     ou tel pager ?


7.2. La solution GNU
--------------------

     La plupart des programmes GNU utilisent des variables d'environnement
     pour ce genre de r�glage.  Par exemple, si l'utilisateur fixe la
     variable `EDITOR' � vim, c'est la commande vim qui sera invoqu�e
     chaque fois qu'un programme GNU aura besoin de faire �diter un texte
     (par exemple, la commande `crontab -e' utilise ce m�canisme).

     La principale limite de cette approche est qu'elle demande de
     modifier
     tous les programmes clients pour qu'ils recherchent la bonne variable
     d'environnement.  Du plus, sauf erreur de ma part, ce m�canisme n'a
     �t� mis en place que pour quelques fonctionnalit�s : `PAGER', qui
     choisi le pager et `EDITOR', qui choisi l'�diteur.  Si vous
     connaissez
     d'autres alternatives par variable d'environnement, n'h�sitez pas �
     m'en faire part, je les mettrais ici.  Mais quoi qu'il en soit, on
     est
     loin du nombre d'alternatives � la Debian, puisque sur mon syst�me,
     je
     n'en ai pas moins de 200...


7.3. La solution Debian
-----------------------

     La solution Debian passe par les alternatives, qui habitent dans le
     r�pertoire `/etc/alternatives', et une belle collection de
     liens.  Par
     exemple, comme j'aime mieux le pager `less'', j'ai les liens suivants
     sur ma machine:

            /usr/bin/pager -> /etc/alternatives/pager -> /usr/bin/less

     Comme ca, `man' n'a plus qu'a appeler la commande `pager', et le
     programme `less' est automatiquement appel�.

     Bien, cette r�ponse appelle une nouvelle question : pourquoi trois
     liens ?  La situation suivante permettrais de faire la m�me chose :

            /usr/bin/pager -> /usr/bin/less

     Oui, �a aurait le m�me effet, mais �a serait plus compliqu� �
     administrer.  Centraliser les alternatives dans un seul r�pertoire
     permet de rendre coh�rent le syst�me.  Ainsi, il est beaucoup plus
     simple de savoir ce que le syst�me des alternatives propose, par un
     simple `ls /etc/alternatives/', au lieu de fouiller sur tout le
     disque
     dur.  De plus, si on travaille en r�seau, cela rend possible de
     partager les binaires entre les machines par un montage nfs de `/usr'
     tout en permettant � chaque machine d'avoir des r�glages sp�cifiques.
     Enfin, cela permet d'�crire un script g�rant tout �a automatiquement.
     Et m�me, ce script existe d�j�, il s'appelle `update-alternatives',
     il
     vient avec le paquet `dpkg' (et est donc d�j� sur votre machine), et
     il n'est accessible qu'� root.

7.4. update-alternatives, sa vie, son oeuvre
--------------------------------------------

     Ce programme est utile � la fois pour les paquets, qui l'utilisent
     pour s'enregistrer comme fournisseurs de fonctionnalit�s, et pour
     l'administrateur, qui l'utilise pour dire quels sont les programmes
     par d�faut.  Je ne m'attarde pas ici sur la premi�re partie, car,
     c'est bien connu, ceux qui font des paquets Debian sont des surhommes
     capables de tout, m�me de lire la page du manuel correspondante...

     Pour l'administrateur, il faut savoir que chaque possibilit� de
     l'alternative a une priorit� donn�e par le mainteneur du programme,
     et
     que donc, on peut tr�s bien laisser le syst�me se d�brouiller seul la
     plupart du temps.

     Il faut aussi citer l'existence de liens esclaves d'autres
     alternatives.  Typiquement, la page de manuel d�crivant l'�diteur est
     un lien esclave de l'�diteur lui m�me.  Comme �a, quand on dit que
     l'�diteur est `vi', et qu'on fait `man editor', on voit la page de
     `vi'.

     Bien, reste � voir comment utiliser ce beau programme.  Le plus
     simple, c'est encore un bon vieux `update-alternatives --help' qui
     donne les differentes facons de l'utiliser.  Les seules qui
     interressent l'administrateur (et non les mainteneurs) sont :

        * `update-alternatives --auto <nom>' : Repasser en mode
          automatique.

        * `update-alternatives --display <nom>' : Voir la configuration
          actuelle d'une alternative.

        * `update-alternatives --config <nom>' : Modifier la configuration
          d'une alternative (et basculer par la m�me en mode manuel, quand
          �a marche, voir partie suivante).

     Essayez l'option `--config', c'est beau � voir.  L'architecture est
     en
     place pour un bel outil cliquable pour ceux qui veulent, reste plus
     qu'� le faire...

     Dernier point important auquel il me faut r�pondre : o� trouver la
     liste des alternatives g�r�es par le syst�me ?  Il suffit de faire un
     `ls /etc/alternatives'.  Bon, c'est vrai, �a ne montre que les
     alternatives actuellement install�es sur votre machine, mais bon,
     cela
     devrait suffire � la plupart d'entre nous.


7.5. Les probl�mes avec update-alternatives
-------------------------------------------

     Les vieilles versions de `dpkg' (ie, les versions ant�rieures � la
     1.7.1 du 7 Novembre 2000, ce qui inclut celle de potato :) avaient
     pas
     mal de probl�mes avec `update-alternatives'.  Par exemple, quand on
     mettait a jour une alternative, elle n'�tait pas mise dans le mode
     "manuel", et donc, a la mise � jour suivante, tout �tait � refaire.
     De plus, les liens esclaves n'�taient pas non plus mis � jour.  Tout
     ceci g�che un peu l'int�r�t du syst�me, je vous l'accorde.  Mais bon.
     Cela n'en est pas moins la bonne m�thode de r�soudre le probl�me sous
     Debian.  Pour consoler les utilisateurs de potato, disons que c'est
     la
     m�thode d'avenir...


7.6. Et comment faire les r�glages pour chaque utilisateur ?
------------------------------------------------------------

     C'est que la m�thode Debian est bien gentille, mais elle ne permet
     que
     de faire des r�glages par d�faut sur une machine, et non sur un
     compte.

     Il n'y a malheureusement pas encore de m�thode Debian de le faire,
     mais on peut quand m�me s'en sortir facilement :

                  export PATH=$HOME/bin:$PATH
                  export MANPATH=$HOME/man:$MANPATH

     Ensuite, il suffit de mettre des liens dans les repertoires bin et
     man
     correspondants, tout comme `update-alternatives' le fait dans
     `/etc/alternatives'.  On peut m�me r�ver que ce programme sera un
     jour
     accessible au commun des mortels (et pas seulement root), et qu'il
     fera quelque chose du genre...


Voila, Mt.


Répondre à