Mécanisme / etc / alternatives d'Ubuntu

28

J'essaie de mieux comprendre le mécanisme / etc / alternatives d'Ubuntu. Les bases sont simples: il permet l’installation de plusieurs «fournisseurs» sur le même ordinateur et configure le paramètre par défaut. Par exemple, si Java SE 5 et Java SE 6 sont installés, / etc / alternatives traite quel est votre JRE par défaut.

Ce que j'aimerais comprendre:

  1. Existe-t-il un registre central dans lequel les options sont ajoutées?
  2. Lors de la création d'un package, comment puis-je configurer un package particulier comme alternative? Puis-je en faire la valeur par défaut?
adurity
la source

Réponses:

20

Après tout, vous créez une alternative en utilisant l’ option --install de la commande update-alternatives . Vous pouvez ajouter cette commande aux scripts de post-installation du package si vous souhaitez enregistrer un package à la place.

Vous pouvez définir votre package comme configuration par défaut lors de l'installation à l'aide de l' option --set ou en plaçant le groupe de remplacement en mode automatique et en vous assurant que votre package a la priorité la plus élevée.

Il n'y a pas de référentiel central, juste les deux deux répertoires utilisés par cette commande:

   alternatives directory
          A directory, by default /etc/alternatives, containing the symlinks.

   administrative directory
          A directory, by default /var/lib/dpkg/alternatives, containing update-alternatives’ state  infor‐
          mation.

Extraits pertinents de la page de manuel update-alternatives :

   --install genname symlink altern priority [--slave genname symlink altern]...
          Add a group of alternatives to the system.  genname is the generic name for the master link, sym‐
          link is the name of its symlink in the alternatives directory,  and  altern  is  the  alternative
          being  introduced for the master link.  The arguments after --slave are the generic name, symlink
          name in the alternatives directory and the alternative for a slave link.  Zero  or  more  --slave
          options, each followed by three arguments, may be specified.

          If the master symlink specified exists already in the alternatives system’s records, the informa‐
          tion supplied will be added as a new set of alternatives for the group.  Otherwise, a new  group,
          set  to  automatic mode, will be added with this information.  If the group is in automatic mode,
          and the newly added alternatives’ priority is higher than any other  installed  alternatives  for
          this group, the symlinks will be updated to point to the newly added alternatives.


   --set name path
          Set the program path as alternative for name.  This is equivalent to --config but is non-interac‐
          tive and thus scriptable.

   --auto link
          Switch the master symlink link to automatic mode.  In the process, this symlink  and  its  slaves
          are updated to point to the highest priority installed alternatives.
Nagul
la source