Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


UPDATE-ALTERNATIVES(8)				       UPDATE-ALTERNATIVES(8)



NAME
       alternatives - maintain symbolic links determining default commands

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

       alternatives [options] --remove name path

       alternatives [options] --set name path

       alternatives [options] --auto name

       alternatives [options] --display name

       alternatives [options] --config name

DESCRIPTION
       alternatives creates,  removes,	maintains  and	displays  information
       about  the  symbolic  links  comprising	the  alternatives system. The
       alternatives system is a reimplementation of the	 Debian	 alternatives
       system.	It  was rewritten primarily to remove the dependence on perl;
       it is intended to be a drop in replacement for Debian's	update-depen-
       dencies	script.	 This  man page is a slightly modified version of the
       man page from the Debian project.

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

       The alternatives system aims to solve this problem.  A generic name in
       the  filesystem is shared by all files providing interchangeable func-
       tionality.  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(1)  and  nvi(1)  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 alter-
       native.	Instead, it is a symbolic link to a name in the	 alternatives
       directory,  which in turn is a symbolic link to the actual file refer-
       enced.  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 functionality  is
       installed, changed or removed, alternatives is called to update infor-
       mation about that file in the alternatives  system.   alternatives  is
       usually called from the %post or %pre scripts in RPM packages.

       It is often useful for a number of alternatives to be synchronised, so
       that they are changed as a group; for example, when  several  versions
       of  the	vi(1)  editor  are  installed,	the  man  page	referenced by
       /usr/share/man/man1/vi.1 should correspond to  the  executable  refer-
       enced  by  /usr/bin/vi.	 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 alternatives is
       run on the changed link's group, and the group will  automatically  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,  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 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 alterna-
	      tives 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 administra-
	      tor 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	 sys-
	      tem.

       alternatives directory
	      A	 directory, by default /etc/alternatives, containing the sym-
	      links.

       administrative directory
	      A	 directory,  by	 default  /var/lib/alternatives,   containing
	      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 alternatives system
	      ensures that the links  in  the  group  point  to	 the  highest
	      priority alternatives appropriate for the group.

       manual mode
	      When  a  link  group is in manual mode, the alternatives system
	      will not make any changes to the	system	administrator's	 set-
	      tings.

OPTIONS
       Exactly one action must be specified if alternatives 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 alternatives 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 alterna-
	      tives this is).

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

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

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

   ACTIONS
       --install link name path pri [--slave slink sname spath] [--initscript
       service]...
	      Add a group of alternatives to the system.  name 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.
	      sname, slink and spath are the generic name, symlink  name  and
	      alternative  for	a  slave link, and service is the name of any
	      associated initscript for the alternative.  NOTE:	 --initscript
	      is  a  Red  Hat  Linux  specific	option.	 Zero or more --slave
	      options, each followed by three arguments, may be specified.

	      If the master symlink specified exists already in the  alterna-
	      tives  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.

	      If  --initscript	is  used, the alternatives system will manage
	      the initscript associated with the alternative  via  chkconfig,
	      registering  and	unregistering  the  init  script depending on
	      which alternative is active.

	      NOTE: --initscript is a Red Hat Linux specific option.

       --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  alter-
	      native  left.   Associated  slave	 links	will  be  updated  or
	      removed, correspondingly.	 If the link is not currently  point-
	      ing  to  path, no links are changed; only the information about
	      the alternative is removed.

       --set name path
	      The symbolic link and slaves for link group name set  to	those
	      configured  for path, and the link group is set to manual mode.
	      This option is not in the original Debian implementation.

       --auto name
	      Switch the master symlink name to automatic mode.	 In the	 pro-
	      cess,  this  symlink and its slaves are updated to point to the
	      highest priority installed alternatives.

       --display name
	      Display information about the link group of which name  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
	      corresponding slave alternatives),  and  the  highest  priority
	      alternative currently installed.

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

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

EXIT STATUS
       0      The requested action was successfully performed.

       2      Problems	were  encountered  whilst parsing the command line or
	      performing the action.

DIAGNOSTICS
       alternatives chatters incessantly about its activities on its standard
       output  channel.	  If  problems occur, alternatives outputs error mes-
       sages 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  Red  Hat	bug  tracking
       system at http://bugzilla.redhat.com.

       If  you find any discrepancy between the operation of alternatives and
       this manual page, it is a bug, either in	 the  implementation  or  the
       documentation;  please report it.  Any significant differences between
       this implementation and Debian's is also a bug and should be reported,
       unless otherwise noted in this man page.

AUTHOR
       alternatives  is	 copyright  2002 Red Hat, Inc..	 It is free software;
       see the GNU General Public Licence version 2 or later for copying con-
       ditions.	 There is NO warranty.

       This  manual  page is copyright 1997/98 Charles Briscoe-Smith and 2002
       Red Hat, Inc.  This is free documentation; see the GNU General  Public
       Licence	version	 2 or later for copying conditions.  There is NO WAR-
       RANTY.

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



			       27 January 2001	       UPDATE-ALTERNATIVES(8)


UNIX/Linux commands referenced on this page:
  1. links
  2. link
  3. man
  4. at
  5. users
  6. make
  7. which
  8. file
  9. refer
  10. as
  11. time
  12. groups
  13. symlinks
  14. more
  15. init
  16. script
  17. find
  18. free