Manpages

NOMBRE

update-alternatives - Gestión de enlaces simbólicos que determinan órdenes predefinidas

SINOPSIS

update-alternatives [opción...] orden

DESCRIPCIÓN

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 following Debian package maintainer scripts, postinst (configure) to install the alternative and from prerm and postrm (remove) to remove the alternative. Note: in most (if not all) cases no other maintainer script actions should call update-alternatives, in particular neither of upgrade nor disappear, as any other such action can lose the manual state of an alternative, or make the alternative temporarily flip-flop, or completely switch when several of them have the same priority.

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.

TERMINOLOGÍA

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

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

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

OPCIONES

--altdir directorio

Specifies the alternatives directory, when this is to be different from the default. Defaults to «/etc/alternatives».

--admindir directorio

Specifies the administrative directory, when this is to be different from the default. Defaults to «/var/lib/dpkg/alternatives»

--instdir directory

Specifies the installation directory where alternatives links will be created (since version 1.20.1). Defaults to «».

--root directory

Specifies the root directory (since version 1.20.1). This also sets the alternatives, installation and administrative directories to match. Defaults to «».

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

ESTADOS DE SALIDA

0

La acción requerida finalizó con éxito.

2

Se encontraron problemas analizando la línea de órdenes o realizando la acción requerida.

ENTORNO

DPKG_ADMINDIR

Si se define, y no se define la opción --admindir, se utiliza como el directorio base de gestión.

FICHEROS

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

FORMATO DE CONSULTA

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.

Example

 $ 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

DIAGNÓSTICOS

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.

EJEMPLOS

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

VÉASE TAMBIÉN

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

TRADUCTOR

Rudy Godoy <rudy [AT] kernel-panik.org>, Rubén Porras <nahoo [AT] inicia.es>, Bruno Barrera C. <bruno.barrera [AT] igloo.cl>, Carlos Izquierdo <gheesh [AT] ertis.net>, Esteban Manchado y NOK. Debian L10n Spanish <debian-l10n-spanish [AT] lists.org>.

Revisiones por Santiago Vila <sanvila [AT] unex.es>, Javier Fernández\-Sanguino, Rubén Porras, Luis Uribe y Omar Campagne.