1UPDATE-ALTERNATIVES(8) System Manager's Manual UPDATE-ALTERNATIVES(8)
2
3
4
6 alternatives - maintain symbolic links determining default commands
7
9 alternatives [options] --install link name path priority [--slave link
10 name path]... [--initscript service] [--family name]
11
12 alternatives [options] --remove name path
13
14 alternatives [options] --set name path
15
16 alternatives [options] --auto name
17
18 alternatives [options] --display name
19
20 alternatives [options] --config name
21
22 alternatives [options] --list name
23
25 alternatives creates, removes, maintains and displays information about
26 the symbolic links comprising the alternatives system. The alternatives
27 system is a reimplementation of the Debian alternatives system. It was
28 rewritten primarily to remove the dependence on perl; it is intended to
29 be a drop in replacement for Debian's update-dependencies script. This
30 man page is a slightly modified version of the man page from the Debian
31 project.
32
33 It is possible for several programs fulfilling the same or similar
34 functions to be installed on a single system at the same time. For
35 example, many systems have several text editors installed at once.
36 This gives choice to the users of a system, allowing each to use a dif‐
37 ferent editor, if desired, but makes it difficult for a program to make
38 a good choice of editor to invoke if the user has not specified a par‐
39 ticular preference.
40
41 The alternatives system aims to solve this problem. A generic name in
42 the filesystem is shared by all files providing interchangeable func‐
43 tionality. The alternatives system and the system administrator
44 together determine which actual file is referenced by this generic
45 name. For example, if the text editors ed(1) and nvi(1) are both
46 installed on the system, the alternatives system will cause the generic
47 name /usr/bin/editor to refer to /usr/bin/nvi by default. The system
48 administrator can override this and cause it to refer to /usr/bin/ed
49 instead, and the alternatives system will not alter this setting until
50 explicitly requested to do so.
51
52 The generic name is not a direct symbolic link to the selected alterna‐
53 tive. Instead, it is a symbolic link to a name in the alternatives
54 directory, which in turn is a symbolic link to the actual file refer‐
55 enced. This is done so that the system administrator's changes can be
56 confined within the /etc directory: the FHS (q.v.) gives reasons why
57 this is a Good Thing.
58
59 When each package providing a file with a particular functionality is
60 installed, changed or removed, alternatives is called to update infor‐
61 mation about that file in the alternatives system. alternatives is
62 usually called from the %post or %pre scripts in RPM packages.
63
64 It is often useful for a number of alternatives to be synchronised, so
65 that they are changed as a group; for example, when several versions of
66 the vi(1) editor are installed, the man page referenced by
67 /usr/share/man/man1/vi.1 should correspond to the executable referenced
68 by /usr/bin/vi. alternatives handles this by means of master and slave
69 links; when the master is changed, any associated slaves are changed
70 too. A master link and its associated slaves make up a link group.
71
72 Each link group is, at any given time, in one of two modes: automatic
73 or manual. When a group is in automatic mode, the alternatives system
74 will automatically decide, as packages are installed and removed,
75 whether and how to update the links. In manual mode, the alternatives
76 system will not change the links; it will leave all the decisions to
77 the system administrator.
78
79 Link groups are in automatic mode when they are first introduced to the
80 system. If the system administrator makes changes to the system's
81 automatic settings, this will be noticed the next time alternatives is
82 run on the changed link's group, and the group will automatically be
83 switched to manual mode.
84
85 Each alternative has a priority associated with it. When a link group
86 is in automatic mode, the alternatives pointed to by members of the
87 group will be those which have the highest priority.
88
89 When using the --config option, alternatives will list all of the
90 choices for the link group of which given name is the master link. You
91 will then be prompted for which of the choices to use for the link
92 group. Once you make a change, the link group will no longer be in auto
93 mode. You will need to use the --auto option in order to return to the
94 automatic state.
95
97 Since the activities of alternatives are quite involved, some specific
98 terms will help to explain its operation.
99
100 generic name
101 A name, like /usr/bin/editor, which refers, via the alternatives
102 system, to one of a number of files of similar function.
103
104 symlink
105 Without any further qualification, this means a symbolic link in
106 the alternatives directory: one which the system administrator
107 is expected to adjust.
108
109 alternative
110 The name of a specific file in the filesystem, which may be made
111 accessible via a generic name using the alternatives system.
112
113 alternatives directory
114 A directory, by default /etc/alternatives, containing the sym‐
115 links.
116
117 administrative directory
118 A directory, by default /var/lib/alternatives, containing alter‐
119 natives' state information.
120
121 link group
122 A set of related symlinks, intended to be updated as a group.
123
124 master link
125 The link in a link group which determines how the other links in
126 the group are configured.
127
128 slave link
129 A link in a link group which is controlled by the setting of the
130 master link.
131
132 automatic mode
133 When a link group is in automatic mode, the alternatives system
134 ensures that the links in the group point to the highest prior‐
135 ity alternatives appropriate for the group.
136
137 manual mode
138 When a link group is in manual mode, the alternatives system
139 will not make any changes to the system administrator's set‐
140 tings.
141
143 Exactly one action must be specified if alternatives is to perform any
144 meaningful task. Any number of the common options may be specified
145 together with any action.
146
147 COMMON OPTIONS
148 --verbose
149 Generate more comments about what alternatives is doing.
150
151 --quiet
152 Don't generate any comments unless errors occur. This option is
153 not yet implemented.
154
155 --test Don't actually do anything, just say what would be done. This
156 option is not yet implemented.
157
158 --help Give some usage information (and say which version of alterna‐
159 tives this is).
160
161 --version
162 Tell which version of alternatives this is (and give some usage
163 information).
164
165 --altdir directory
166 Specifies the alternatives directory, when this is to be differ‐
167 ent from the default.
168
169 --admindir directory
170 Specifies the administrative directory, when this is to be dif‐
171 ferent from the default.
172
173 ACTIONS
174 --install link name path priority [--slave slink sname spath]
175 [--initscript service]...
176 Add a group of alternatives to the system. name is the generic
177 name for the master link, link is the name of its symlink, path
178 is the alternative being introduced for the master link, and
179 priority is the priority of the alternatives group. Higher pri‐
180 orities take precendence if no alternative is manually selected.
181 sname, slink and spath are the generic name, symlink name and
182 alternative for a slave link, and service is the name of any
183 associated initscript for the alternative. NOTE: --initscript
184 and --family are a Red Hat Linux specific options. Zero or more
185 --slave options, each followed by three arguments, may be speci‐
186 fied.
187
188 If the master symlink specified exists already in the alterna‐
189 tives system's records, the information supplied will be added
190 as a new set of alternatives for the group. Otherwise, a new
191 group, set to automatic mode, will be added with this informa‐
192 tion. If the group is in automatic mode, and the newly added
193 alternatives' priority is higher than any other installed alter‐
194 natives for this group, the symlinks will be updated to point to
195 the newly added alternatives.
196
197 If --initscript is used, the alternatives system will manage the
198 initscript associated with the alternative via chkconfig, regis‐
199 tering and unregistering the init script depending on which
200 alternative is active.
201
202 NOTE: --initscript is a Red Hat Linux specific option.
203
204
205 --family can be used to group similar alternatives. If the group
206 is in manual mode and the alternative currently used is removed,
207 alternatives will try to change links to different one with same
208 family and highest priority.
209
210 NOTE: --family is a Red Hat Linux specific option.
211
212 --remove name path
213 Remove an alternative and all of its associated slave links.
214 name is a name in the alternatives directory, and path is an
215 absolute filename to which name could be linked. If name is
216 indeed linked to path, name will be updated to point to another
217 appropriate alternative, or removed if there is no such alterna‐
218 tive left. Associated slave links will be updated or removed,
219 correspondingly. If the link is not currently pointing to path,
220 no links are changed; only the information about the alternative
221 is removed.
222
223 --set name path
224 The symbolic link and slaves for link group name set to those
225 configured for path, and the link group is set to manual mode.
226 This option is not in the original Debian implementation.
227
228 --config name
229 Present the user with a configuration menu for choosing the mas‐
230 ter link and slaves for link group name. Once chosen, the link
231 group is set to manual mode.
232
233 --auto name
234 Switch the master symlink name to automatic mode. In the
235 process, this symlink and its slaves are updated to point to the
236 highest priority installed alternatives.
237
238 --display name
239 Display information about the link group of which name is the
240 master link. Information displayed includes the group's mode
241 (auto or manual), which alternative the symlink currently points
242 to, what other alternatives are available (and their correspond‐
243 ing slave alternatives), and the highest priority alternative
244 currently installed.
245
246 --list Display information about all link groups.
247
249 /etc/alternatives/
250 The default alternatives directory. Can be overridden by the
251 --altdir option.
252
253 /var/lib/alternatives/
254 The default administration directory. Can be overridden by the
255 --admindir option.
256
258 0 The requested action was successfully performed.
259
260 2 Problems were encountered whilst parsing the command line or
261 performing the action.
262
264 alternatives chatters incessantly about its activities on its standard
265 output channel. If problems occur, alternatives outputs error messages
266 on its standard error channel and returns an exit status of 2. These
267 diagnostics should be self-explanatory; if you do not find them so,
268 please report this as a bug.
269
271 If you find a bug, please report it using the Red Hat bug tracking sys‐
272 tem at http://bugzilla.redhat.com.
273
274 If you find any discrepancy between the operation of alternatives and
275 this manual page, it is a bug, either in the implementation or the doc‐
276 umentation; please report it. Any significant differences between this
277 implementation and Debian's is also a bug and should be reported,
278 unless otherwise noted in this man page.
279
281 alternatives is copyright 2002 Red Hat, Inc.. It is free software; see
282 the GNU General Public Licence version 2 or later for copying condi‐
283 tions. There is NO warranty.
284
285 This manual page is copyright 1997/98 Charles Briscoe-Smith and 2002
286 Red Hat, Inc. This is free documentation; see the GNU General Public
287 Licence version 2 or later for copying conditions. There is NO WAR‐
288 RANTY.
289
291 ln(1), FHS, the Filesystem Hierarchy Standard. alternatives.c chkcon‐
292 fig.c COPYING leveldb.c leveldb.h Makefile ntsysv.c ook
293
294
295
296 27 January 2001 UPDATE-ALTERNATIVES(8)