update-alternatives - Gestión de enlaces simbólicos
que determinan órdenes predefinidas
update-alternatives [opción...]
orden
update-alternatives crea, elimina, gestiona y muestra
información sobre los enlaces simbólicos que conforman el
sistema de alternativas de Debian.
Es posible que tenga en el sistema varios programas instalados a
la vez que realizan la misma función. Por ejemplo, muchos sistemas
tienen varios editores de texto instalados al mismo tiempo, lo que deja la
elección de qué editor de texto utilizar en manos del usuario,
si éste lo desea, pero hace difícil que un programa elija la
opción correcta si el usuario no ha definido ninguna preferencia.
El objetivo del sistema de alternativas de Debian es resolver este
problema. Un nombre genérico en el sistema de ficheros se comparte
entre todos los ficheros que tienen una funcionalidad intercambiable. El
sistema de alternativas junto con el administrador del sistema determinan a
qué fichero hace referencia este nombre genérico. Por ejemplo,
si los editores de texto ed(1) y nvi(1) están
instalados conjuntamente en el sistema, el sistema de alternativas
hará que el nombre genérico /usr/bin/editor se refiera
a /usr/bin/nvi por omisión. El administrador del sistema puede
modificar esto y hacer que se refiera a /usr/bin/ed, y el sistema de
alternativas no modificará esto posteriormente hasta que se solicite
explícitamente.
El nombre genérico no es un enlace simbólico directo
a la alternativa seleccionada. En vez de esto, es un enlace simbólico
a un nombre en el directorio de alternativas
(«/etc/alternatives»), que a su vez es un enlace
simbólico al fichero al que se hace referencia en realidad. El
objetivo es que los cambios del administrador se mantengan dentro del
directorio /etc: el FHS (q.v.) da razones de por qué esto es
bueno.
When each package providing a file with a particular functionality
is installed, changed or removed, update-alternatives is called to
update information about that file in the alternatives system.
update-alternatives is usually called from the postinst
(configure) or prerm (remove and deconfigure) scripts in Debian
packages.
Habitualmente, es útil que un número de alternativas
se sincronicen de tal modo que se puedan cambiar como un grupo. Por ejemplo,
cuando varias versiones del editor vi(1) están instaladas la
página del manual preferida por /usr/share/man/man1/vi.1 debe
corresponder con el ejecutable al que hace referencia /usr/bin/vi.
update-alternatives manipula esto en términos de enlaces
maestro y esclavo; cuando se cambia el maestro, todos los
esclavos relacionados con él también cambian. Un enlace
maestro y sus esclavos relacionados forman un grupo de
enlaces.
Cada grupo de enlaces está en todo momento en uno de los
dos modos posibles: automático o manual. Cuando un grupo está
en modo automático el sistema de alternativas decide
automáticamente el momento de actualizar los enlaces a medida que se
instalan o desinstalan paquetes. En modo manual el sistema de alternativas
deja todas estas decisiones en manos del administrador del sistema.
Los grupos de enlaces se establecen en modo automático la
primera vez que aparecen en el sistema. Si el administrador del sistema hace
cambios en la configuración automática del sistema,
update-alternatives se dará cuenta la próxima vez que
se ejecute sobre el grupo de enlaces cambiados y el grupo pasará
automáticamente a modo manual.
Cada alternativa tiene una prioridad asociada. Cuando un
grupo de enlaces se encuentra en modo automático, los miembros del
grupo apuntarán a la alternativa con la prioridad más
alta.
When using the --config option, update-alternatives
will list all of the choices for the link group of which given name
is the master alternative name. The current choice is marked with a
‘*’. You will then be prompted for your choice regarding this
link group. Depending on the choice made, the link group might no longer be
in auto mode. You will need to use the --auto option in order
to return to the automatic mode (or you can rerun --config and select
the entry marked as automatic).
Si quiere realizar la configuración de un modo no
interactivo puede utilizar la opción --set en su lugar
(véase más abajo).
Los diferentes paquetes que proveen el mismo fichero tienen que
hacerlo de forma cooperativa. En otras palabras, el uso de
update-alternatives es obligatorio con todos los paquetes
relacionados con esa situación. No es posible sobreescribir el
fichero de un paquete que no usa el mecanismo de
update-alternatives.
Debido a que las actividades que realiza
update-alternatives están fuertemente relacionadas entre
sí, la definición de algunos términos
específicos ayudará a entender su funcionamiento.
- nombre genérico (o
enlace alternativo)
- Un nombre, como /usr/bin/editor, que mediante el sistema de
alternativas hace referencia a uno de los posibles ficheros con una
función similar.
- nombre de la
alternativa
- El nombre de un enlace simbólico en el directorio de
alternativas.
- alternativa (o
ruta alternativa)
- El nombre de un fichero específico en el sistema de ficheros al que
se puede acceder a través de un nombre genérico usando el
sistema de alternativas.
- directorio de
alternativas
- El directorio que contiene los enlaces, por omisión es
/etc/alternatives.
- directorio
administrativo
- El directorio que contiene la información de estado de
update-alternatives, por omisión es
/var/lib/dpkg/alternatives.
- grupo de enlaces
- Un conjunto de enlaces relacionados con el objetivo de que se actualicen
como grupo.
- enlace maestro
- El enlace alternativo en un grupo de enlaces que determina cómo se
configuran el resto de los enlaces del grupo.
- enlace
esclavo
- Un enlace alternativo en un grupo de enlaces definido por el enlace
maestro.
- modo
automático
- Cuando un grupo de enlaces se encuentra en modo automático el
sistema de alternativas asegura que los enlaces del grupo apuntan a la
alternativa con la mayor prioridad en ese grupo.
- modo manual
- Cuando un grupo de enlaces se encuentra en modo manual el sistema de
alternativas no hará ningún cambio en la
configuración del administrador.
ÓRDENES
- --install
enlace nombre ruta prioridad [--slave enlace nombre
ruta] ...
- Añade un grupo de alternativas al sistema. enlace es el
nombre genérico del enlace maestro, nombre es el nombre del
enlace simbólico en el directorio de alternativas, y ruta es
la alternativa que se va a introducir para el enlace maestro. Los
argumentos a continuación de --slave son el nombre
genérico, el nombre del enlace simbólico en el directorio de
alternativas, y la ruta alternativa para el enlace esclavo. Puede definir
cero o más opciones de --slave, cada uno seguido de tres
argumentos. Tenga en cuenta que la alternativa maestra debe existir
previamente o la ejecución fallará. Por otra parte, si la
alternativa esclava no existe, el enlace esclavo alternativo
correspondiente no se instalará, mostrando un aviso. Un fichero
real instalado en la ubicación de un enlace alternativo nunca se
eliminará a menos que se use --force.
- Si el nombre de la alternativa definida ya existe en los registros del
sistema de alternativas la información suministrada se
añadirá como un nuevo conjunto de alternativas para el
grupo. De otra forma se creará un grupo nuevo en modo
automático, al que se le añadirá la
información suministrada. Si el grupo está en modo
automático, y la prioridad nueva añadida es mayor que
cualquier otra alternativa instalada para ese grupo, los enlaces se
actualizarán para apuntar a las nuevas alternativas.
- --set nombre
ruta
- Define la ruta del programa como alternativa para nombre.
Equivale a --config pero no es interactivo, de modo que permite su
inclusión en scripts.
- --remove nombre
ruta
- Elimina una alternativa y todos sus enlaces esclavos asociados.
nombre es el nombre en el directorio de alternativas y ruta
es el nombre absoluto del fichero al que nombre se podría
enlazar. Si nombre está en realidad enlazado a ruta,
nombre se actualizará para que apunte a otra alternativa
apropiada o se eliminará si no queda ninguna alternativa restante.
Los enlaces esclavos asociados se actualizarán o eliminarán
correspondientemente. Si el enlace no apunta a ruta, no se cambia
ningún enlace, sólo se elimina la información acerca
de la alternativa.
- --remove-all
nombre
- Elimina todas las alternativas y todos sus enlaces esclavos asociados.
nombre es un nombre en el directorio de alternativas.
- --all
- Ejecuta --config sobre todas las alternativas. Puede ser
útil en combinación con --skip-auto para revisar y
configurar todas las alternativas que no están configuradas en modo
automático. También se muestran las alternativas rotas. Una
manera sencilla de arreglar todas las alternativas rotas es ejecutar
yes ” | update-alternatives --force --all.
- --auto
nombre
- Cambia el grupo de enlaces dependientes de la alternativa nombre a
modo automático. En el proceso, el enlace simbólico y sus
esclavos se actualizarán para apuntar a la alternativa instalada
con una prioridad mayor.
- --display
nombre
- Display information about the link group. Information displayed includes
the group's mode (auto or manual), the master and slave links, which
alternative the master link currently points to, what other alternatives
are available (and their corresponding slave alternatives), and the
highest priority alternative currently installed.
- --get-selections
- List all master alternative names (those controlling a link group) and
their status (since version 1.15.0). Each line contains up to 3 fields
(separated by one or more spaces). The first field is the alternative
name, the second one is the status (either auto or manual),
and the last one contains the current choice in the alternative (beware:
it's a filename and thus might contain spaces).
- --set-selections
- Lee la configuración de alternativas por la entrada estándar
en el formato generado por --get-selections y los reconfigura
apropiadamente (desde la versión 1.15.0).
- --query
nombre
- Display information about the link group like --display does, but
in a machine parseable way (since version 1.15.0, see section QUERY
FORMAT below).
- --list
name
- Muestra todos los objetivos del grupo de enlaces.
- --config
nombre
- Muestra las alternativas disponibles para un grupo de enlaces y permite al
usuario seleccionar interactivamente cual usar. El grupo de enlaces se
actualizará.
- --help
- Muestra el modo de uso y termina.
- --version
- Muestra la versión y termina.
- --altdir
directorio
- Define el directorio de alternativas, cuando es diferente del directorio
por omisión.
- --admindir
directorio
- Define el directorio administrativo, cuando es diferente del directorio
por omisión.
- --log=fichero
- Specifies the log file (since version 1.15.0), when this is to be
different from the default (/var/log/alternatives.log).
- --force
- Allow replacing or dropping any real file that is installed where an
alternative link has to be installed or removed.
- --skip-auto
- Omite el dialogo de configuración de alternativas para aquellas
configuradas adecuadamente en modo automático. Esta opción
solo tiene sentido con --config o --all.
- --quiet
- Do not generate any comments unless errors occur.
- --verbose
- Generate more comments about what is being done.
- --debug
- Generate even more comments, helpful for debugging, about what is being
done (since version 1.19.3).
- 0
- La acción requerida finalizó con éxito.
- 2
- Se encontraron problemas analizando la línea de órdenes o
realizando la acción requerida.
- DPKG_ADMINDIR
- Si se define, y no se define la opción --admindir, se
utiliza como el directorio base de gestión.
- /etc/alternatives/
- El directorio de alternativas por omisión. Se puede cambiar con la
opción --altdir.
- /var/lib/dpkg/alternatives/
- El directorio de administración por omisión. Se puede
modificar con la opción --admindir.
The --query format is using an RFC822-like flat format.
It's made of n + 1 blocks where n is the number of
alternatives available in the queried link group. The first block contains
the following fields:
- Name:
nombre
- El nombre de la alternativa en el directorio de alternativas.
- Link:
enlace
- El nombre genérico de la alternativa.
- Slaves: lista
de esclavos
- Cuando este campo está presente, las líneas
siguientes contienen todos los enlances esclavos asociados al
enlace maestro de la alternativa. Hay un esclavo por línea. Cada
línea contiene un espacio, el nombre genérico de la
alternativa esclava, otro espacio, y la ruta al enlace esclavo.
- Status:
estado
- El estado de la alternativa (auto o manual).
- Best:
mejor-opción
- La ruta de la mejor alternativa para este grupo de enlaces. No aparece si
no existen alternativas disponibles.
- Value:
alternativa-seleccionada-actualmente
- La ruta de la alternativa seleccionada en ese momento. También
puede tomar el valor mágico none (ninguno). Se usa si el
enlace no existe.
Los siguientes bloques describen las alternativas disponibles en
el grupo de enlaces consultado:
- Alternative:
ruta-a-esta-alternativa
- Ruta a la alternativa de este bloque.
- Priority:
valor-de-prioridad
- Valor de la prioridad de esta alternativa.
- Slaves:
lista de esclavos
- When this field is present, the next lines hold all slave
alternatives associated to the master link of the alternative. There is
one slave per line. Each line contains one space, the generic name of the
slave alternative, another space, and the path to the slave
alternative.
$ update-alternatives --query editor
Name: editor
Link: /usr/bin/editor
Slaves:
editor.1.gz /usr/share/man/man1/editor.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/editor.1.gz
editor.it.1.gz /usr/share/man/it/man1/editor.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/editor.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/editor.1.gz
Status: auto
Best: /usr/bin/vim.basic
Value: /usr/bin/vim.basic
Alternative: /bin/ed
Priority: -100
Slaves:
editor.1.gz /usr/share/man/man1/ed.1.gz
Alternative: /usr/bin/vim.basic
Priority: 50
Slaves:
editor.1.gz /usr/share/man/man1/vim.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/vim.1.gz
editor.it.1.gz /usr/share/man/it/man1/vim.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
Con la opción --verbose, update-alternatives
informa detalladamente acerca de sus actividades por la salida
estándar. Si ocurre algún problema, update-alternatives
envía los mensajes de error por la salida de errores estándar
y cierra con el estado 2. Los diagnósticos deberían ser
auto-explicativos; si a usted no se lo parecen, le rogamos informe de esto
como un fallo.
Hay varios paquetes que proporcionan un editor de texto compatible
con vi, por ejemplo nviy vim. El grupo de enlaces
vi selecciona cual se usa, incluyendo enlaces para el programa y la
página del manual asociada.
Utilice la opción --display para mostrar los
paquetes disponibles que proporcionan vi y su configuración
actual:
update-alternatives --display vi
Para elegir una implementación de vi en particular
use la siguiente orden como el usuario «root» y seleccione un
número de la lista:
update-alternatives --config vi
Para que la implementación de vi se vuelva a elegir
de forma automática, haga como administrador:
update-alternatives --auto vi
ln(1), FHS, el estándar de la jerarquía del
sistema de ficheros.
Rudy Godoy <rudy@kernel-panik.org>, Rubén Porras
<nahoo@inicia.es>, Bruno Barrera C. <bruno.barrera@igloo.cl>,
Carlos Izquierdo <gheesh@ertis.net>, Esteban Manchado y NOK. Debian
L10n Spanish <debian-l10n-spanish@lists.debian.org>.
Revisiones por Santiago Vila <sanvila@unex.es>, Javier
Fernández-Sanguino, Rubén Porras, Luis Uribe y Omar
Campagne.