update-alternatives
UPDATE-ALTERNATIVES(S)    dpkg utilities   UPDATE-ALTERNATIVES(S)



NAME
       update-alternatives  - maintain symbolic links determining
       default commands

SYNOPSIS
       update-alternatives [options]  --install  link  name  path
       priority [--slave link name path]...

       update-alternatives [options] --remove name path

       update-alternatives [options] --auto name

       update-alternatives [options] --display name

       update-alternatives [options] --list name

       update-alternatives [options] --config name

DESCRIPTION
       update-alternatives  creates,  removes, maintains and dis-
       plays information about the symbolic links comprising  the
       Debian alternatives system.

       It is possible for several programs fulfilling the same or
       similar functions to be installed on a  single  system  at
       the  same  time.   For  example, many systems have several
       text editors installed at once.  This gives choice to  the
       users  of  a system, allowing each to use a different edi-
       tor, if desired, but makes it difficult for a  program  to
       make a good choice of editor to invoke if the user has not
       specified a particular preference.

       Debian's alternatives system aims to solve  this  problem.
       A  generic  name  in the filesystem is shared by all files
       providing interchangeable functionality.  The alternatives
       system  and  the  system  administrator together determine
       which actual file is referenced by this generic name.  For
       example,  if  the  text  editors ed(d) and nvi(i) are both
       installed on the  system,  the  alternatives  system  will
       cause   the  generic  name  /usr/bin/editor  to  refer  to
       /usr/bin/nvi by default.   The  system  administrator  can
       override  this  and  cause  it  to  refer  to  /usr/bin/ed
       instead, and the alternatives system will not  alter  this
       setting until explicitly requested to do so.

       The  generic  name  is  not  a direct symbolic link to the
       selected alternative.  Instead, it is a symbolic link to a
       name  in  the  alternatives  directory, which in turn is a
       symbolic link to the actual file referenced.  This is done
       so that the system administrator's changes can be confined
       within the /etc directory: the FHS  (q.v.)  gives  reasons
       why this is a Good Thing.

       When each package providing a file with a particular func-
       tionality is installed, changed or removed,  update-alter-
       natives is called to update information about that file in
       the alternatives system.  update-alternatives  is  usually
       called  from the postinst or prerm scripts in Debian pack-
       ages.

       It is often useful for a number of alternatives to be syn-
       chronised,  so  that  they  are  changed  as  a group; for
       example, when several versions of  the  vi(i)  editor  are
       installed,      the     man     page     referenced     by
       /usr/share/man/man1/vi.1 should  correspond  to  the  exe-
       cutable  referenced  by  /usr/bin/vi.  update-alternatives
       handles this by means of master and slave links; when  the
       master  is changed, any associated slaves are changed too.
       A master link and its associated slaves  make  up  a  link
       group.

       Each  link  group  is,  at  any  given time, in one of two
       modes: automatic or manual.  When a group is in  automatic
       mode,  the  alternatives system will automatically decide,
       as packages are installed and removed, whether and how  to
       update the links.  In manual mode, the alternatives system
       will not change the links; it will leave all the decisions
       to the system administrator.

       Link  groups  are  in  automatic  mode when they are first
       introduced to the system.   If  the  system  administrator
       makes  changes  to  the  system's automatic settings, this
       will be noticed the next time update-alternatives  is  run
       on  the changed link's group, and the group will automati-
       cally be switched to manual mode.

       Each alternative has a priority associated with it.   When
       a  link  group  is  in  automatic  mode,  the alternatives
       pointed to by members of the group  will  be  those  which
       have the highest priority.

       When  using  the --config option, update-alternatives will
       list all of the choices for the link group of which  given
       name  is  the  master link.  You will then be prompted for
       which of the choices to use for the link group.  Once  you
       make  a  change,  the link group will no longer be in auto
       mode. You will need to use the --auto option in  order  to
       return to the automatic state.

TERMINOLOGY
       Since  the  activities  of  update-alternatives  are quite
       involved, some specific terms will  help  to  explain  its
       operation.

       generic name
              A name, like /usr/bin/editor, which refers, via the
              alternatives system, to one of a number of files of
              similar function.

       symlink
              Without  any  further  qualification,  this means a
              symbolic link in the  alternatives  directory:  one
              which  the  system  administrator  is  expected  to
              adjust.

       alternative
              The name of a  specific  file  in  the  filesystem,
              which  may  be  made  accessible via a generic name
              using the alternatives system.

       alternatives directory
              A directory, by default /etc/alternatives, contain-
              ing the symlinks.

       administrative directory
              A directory, by default /var/lib/dpkg/alternatives,
              containing update-alternatives' state  information.

       link group
              A  set  of related symlinks, intended to be updated
              as a group.

       master link
              The link in a link group which determines  how  the
              other links in the group are configured.

       slave link
              A  link  in a link group which is controlled by the
              setting of the master link.

       automatic mode
              When a link group is in automatic mode, the  alter-
              natives  system ensures that the links in the group
              point to the highest priority  alternatives  appro-
              priate for the group.

       manual mode
              When  a  link group is in manual mode, the alterna-
              tives system will not make any changes to the  sys-
              tem administrator's settings.

OPTIONS
       Exactly  one  action  must be specified if update-alterna-
       tives is to perform any meaningful task.   Any  number  of
       the  common  options  may  be  specified together with any
       action.

   COMMON OPTIONS
       --verbose
              Generate more comments about  what  update-alterna-
              tives is doing.

       --quiet
              Don't  generate  any  comments unless errors occur.
              This option is not yet implemented.

       --test Don't actually do anything, just say what would  be
              done.  This option is not yet implemented.

       --help Give  some usage information (and say which version
              of update-alternatives this is).

       --version
              Tell which version of update-alternatives  this  is
              (and give some usage information).

       --altdir directory
              Specifies  the alternatives directory, when this is
              to be different from the default.

       --admindir directory
              Specifies the administrative directory,  when  this
              is to be different from the default.

   ACTIONS
       --install link gen path pri [--slave slink sgen spath] ...
              Add  a group of alternatives to the system.  gen is
              the generic name for the master link, link  is  the
              name  of  its  symlink, and path is the alternative
              being introduced for the master link.  sgen,  slink
              and  spath  are  the generic name, symlink name and
              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 information
              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  informa-
              tion.   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.

       --remove name path
              Remove  an  alternative  and  all of its associated
              slave links.  name is a name  in  the  alternatives
              directory,  and  path  is  an  absolute filename to
              which name could be  linked.   If  name  is  indeed
              linked  to  path,  name will be updated to point to
              another  appropriate  alternative,  or  removed  if
              there  is  no  such  alternative  left.  Associated
              slave links will be updated or removed, correspond-
              ingly.   If  the  link is not currently pointing to
              path, no links are changed;  only  the  information
              about the alternative is removed.

       --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.

       --display link
              Display information about the link group  of  which
              link  is  the  master  link.  Information displayed
              includes the group's mode (auto or  manual),  which
              alternative  the  symlink currently points to, what
              other alternatives are available (and their  corre-
              sponding  slave alternatives), and the highest pri-
              ority alternative currently installed.

       --list link
              Display all targets of the link group.

FILES
       /etc/alternatives/
              The default alternatives directory.  Can  be  over-
              ridden by the --altdir option.

       /var/lib/dpkg/alternatives/
              The default administration directory.  Can be over-
              ridden by the --admindir option.

EXIT STATUS
       0      The requested action was successfully performed.

       2      Problems were encountered whilst parsing  the  com-
              mand line or performing the action.

DIAGNOSTICS
       update-alternatives chatters incessantly about its activi-
       ties on its standard output channel.  If  problems  occur,
       update-alternatives outputs error messages on its standard
       error channel and returns an  exit  status  of  2.   These
       diagnostics should be self-explanatory; if you do not find
       them so, please report this as a bug.

BUGS
       If you find a bug, please report it using the Debian  bug-
       tracking  system,  or,  if that is not possible, email the
       author directly.

       If you find  any  discrepancy  between  the  operation  of
       update-alternatives  and  this  manual  page, it is a bug,
       either in the implementation or the documentation;  please
       report it.

AUTHOR
       Debian  update-alternatives is copyright 1995 Ian Jackson.
       It is free software; see the GNU  General  Public  Licence
       version  2  or  later for copying conditions.  There is NO
       warranty.

       This manual page is  copyright  1997/98  Charles  Briscoe-
       Smith.   This  is  free documentation; see the GNU General
       Public Licence version 2 or later for copying  conditions.
       There is NO WARRANTY.

       You can find the GNU GPL in /usr/share/common-licenses/GPL
       on any Debian system.

SEE ALSO
       ln(n), FHS, the Filesystem Hierarchy Standard.



Debian Project           19 January 1998   UPDATE-ALTERNATIVES(S)