Manpages

NOME

update-alternatives - mantém links simbólicos que determinam os comandos predefinidos

RESUMO

update-alternatives [option...] command

DESCRIÇÃO

update-alternatives creates, removes, maintains and displays information about the symbolic links comprising the alternatives system.

É possível para vários programas realizarem o mesmo ou funções semelhantes para serem instalados num único sistema ao mesmo tempo. Por exemplo, muitos sistemas têm vários editores de texto instalados ao mesmo tempo. Isto dá escolha aos utilizadores do sistema, permitindo que cada um use um editor diferente, se o desejar, mas torna difícil para um programa fazer uma boa escolha no editor a invocar se o utilizador não especificou a sua preferência particular.

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

O nome genérico não é um link simbólico directo para a alternativa selecionada. Em vez disso, é um link simbólico para um nome no directório alternatives, o qual por sua vez é um link simbólico para o ficheiro real referenciado. Isto é feito deste modo para que as alterações do administrador do sistema fiquem confinadas dentro do directório /etc: a FHS (q.v.) explica o porquê isto ser uma Coisa Boa.

Quando cada pacote que fornece um ficheiro com uma determinada funcionalidade é instalado, modificado ou removido, o update-alternatives é chamado para actualizar a informação sobre esse ficheiro no sistema de alternativas. O update-alternatives é geralmente chamado a partir dos seguintes scripts de maintainer de pacote Debian, postinst (configurar) para instalar a alternativa e a partir de prerm e postrm (remover) para remover a alternativa. Nota: na maioria dos casos (se não todos) nenhuma outra acção de script de maintainer deverá chamar update-alternatives, em particular nenhum de upgrade nem disappear, pois outra acção do tipo pode perder o estado manual da alternativa, ou fazer a alternativa inverter temporariamente, ou comutar completamente quando várias têm a mesma prioridade.

It is often useful for a number of alternatives to be synchronized, so that they are changed as a group; for example, when several versions of the vi(1) editor are installed, the manual page referenced by /usr/share/man/man1/vi.1 should correspond to the executable 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.

Cada grupo de links é, a qualquer altura, em um ou dois modos: automático ou manual. Quando um grupo está em modo automático, o sistema de alternativas irá decidir automaticamente, quando os pacotes são instalados ou removidos, em como actualizar os links. Em modo manual, o sistema de alternativas irá reter a escolha do administrador e evitar alterar os links (excepto quando algum quebrar).

Grupos de links ficam em modo automático quando são introduzidos pela primeira vez no sistema. Se o administrador do sistema fizer alterações nas definições automáticas do sistema, isso será notificado na próxima vez que o update-alternatives correr no grupo de links alterado, e o grupo será automaticamente comutado para modo manual.

Cada alternativa tem uma priority associada. Quando um grupo de links está em modo automático, as alternativas apontadas pelos membros do grupo serão aquelas que têm aprioridade mais alta.

Quando se usa a opção --config, o update-alternatives irá listar todas as opções para o grupo de links do qual o nome dado é o nome alternativo mestre. A escolha actual é marcada com um ’*’. Você será depois questionado sobre a sua escolha em relação a este grupo de links. Dependendo da escolha feita, o grupo de link pode não mais ficar em modo auto. Você precisa usar a opção --auto de modo a regressar ao modo automático (ou pode voltar a correr --config e escolher a entrada marcada como automática).

Se desejar configurar não interactivamente, em vez disto pode usar a opção --set (veja em baixo).

Pacotes diferentes que forneçam o mesmo ficheiro precisam de fazê-lo cooperativamente. Por outras palavras, o uso de update-alternatives é obrigatório para todos os pacotes envolvidos em tal caso. Não é possível sobrepor qualquer ficheiro de um pacote em que não se empregue o mecanismo update-alternatives.

TERMINOLOGIA

Como as atividades de update-alternatives estão bastante envolvidas, alguns termos específicos irão ajudar a explicar a sua operação.
nome genérico (ou link alternativo)

Um nome, como /usr/bin/editor, o qual refere, via sistema de alternativos, a um de um número de ficheiros de função semelhante.

nome alternativo

O nome do links simbólico no directório de alternativos.

alternativo (ou caminho alternativo)

O nome de um ficheiro especifico no sistema de ficheiros, que pode ser tornado acessível via um nome genérico usando o sistema de alternativos.

directório de alternativos

Um directório, por predefinição /etc/alternatives, que contém os links simbólicos.

directório administrativo

Um directório, por predefinição /var/lib/dpkg/alternatives, que contém informações de estado do update-alternatives.

grupo de links

Um conjunto de links simbólicos relacionados, destinados a serem actualizados como um grupo.

link mestre

O link alternativo num grupo de links que determina como os outros links no grupo são configurados.

link escravo

Um link alternativo num grupo de links que é controlado pela definição do link mestre.

modo automático

Quando um grupo de links está em modo automático, o sistema de alternativas assegura que os links do grupo apontam para a alternativa apropriada de prioridade mais alta para o grupo.

modo manual

Quando um grupo de links está em modo manual, o sistema de alternativas não irá fazer nenhumas alterações às definições do administrador do sistema.

COMANDOS

--install link name path priority [--slave link name path]...

Adiciona um grupo de alternativas ao sistema. link é o nome genérico para o link mestre, name é o nome do seu link simbólico no directório de alternativas, e path é a alternativa a ser introduzida para o link mestre. Os argumentos após --slave são o ome genérico, nome do link simbólico no directório de alternativas e o caminho alternativo para um link slave. Podem ser especificadas zero ou mais opções --slave, cada uma seguida de três argumentos. Note que a alternativa mestre tem de existir ou a chamada irá falhar. No entanto se uma alternativa slave não existir, o link de alternativa slave correspondente simplesmente não irá ser instalado (mesmo assim é mostrado um aviso). Se estiver instalado um ficheiro real no lugar onde um link simbólico deve ser instalado, este é mantido a menos que seja usado --force.

Se o nome alternativo especificado já existir nos registos do sistema de alternativas, a informação fornecida será adicionada como um novo conjunto de alternativas para o grupo. Caso contrário, será adicionado um novo grupo, definido para modo automático, com esta informação. Se o grupo estiver em modo automático, e as prioridade das alternativas recentes adicionadas é mais alta que as outras alternativas instaladas para este grupo, os links simbólicos serão actualizados para apontarem às novas alternativas adicionadas.

--set name path

Define o programa path como alternativa para name. Isto é equivalente a --config mas não é interactivo e assim apropriado para usar em scripts.

--remove name path

Remove uma alternativa e todos os seus links slave associados. name é um nome no directório de alternativas, e path é um nome de ficheiro absoluto para o qual name poderá estar vinculado. Se name está de facto vinculado a path, name será actualizado para apontar para outra alternativa apropriada (e o grupo é colocado de novo em modo automático), ou removido se não existir mais nenhuma alternativa. Os links slave associados serão actualizados ou removidos, correspondentemente. Se o link não está actualmente a apontar para path, nenhum link é alterado, apenas é removida a informação sobre a alternativa.

--remove-all name

Remove todos os alternativos e todos os seus links escravos associados. name é um nome no directório de alternativos.

--all

Chama --config em todas as alternativas. Pode ser útil combinado com --skip-auto para rever e configurar todas as alternativas que não estão configuradas em modo automático. São também mostradas as alternativas quebradas. Assim um modo simples de corrigir todas as alternativas quebradas é chamar yes ’’ | update-alternatives --force --all.

--auto name

Comuta o grupo de link por detrás da alternativa para name para modo automático. No processo, o link simbólico mestre e os seus slaves são actualizados par apontar para a alternativa instalada de prioridade mais alta.

--display name

Mostra informação sobre o grupo de link. A informação ,mostrada inclui o modo do grupo (auto ou manual), os links mestre e slave, a qual alternativa o link mestre presentemente aponta, que outras alternativas estão disponíveis (a as suas alternativas slave correspondentes), e a alternativa de prioridade mais alta presentemente instalada.

--get-selections

Lista todos os nomes de alternativa mestre (aqueles que controlam um grupo link) e os seus estados (desde versão 1.15.0). Cada linha contém até 3 campos (separados por um ou mais espaços). O primeiro campo é o nome da alternativa, o segundo é o estado (se auto ou manual), e o último contem a escolha actual na alternativa (cuidado: é um nome de ficheiro, e pode conter espaços).

--set-selections

Lê a configuração de alternativas na entrada standard no formato gerado por --get-selections e reconfigura-as adequadamente (desde versão 1.15.0).

--query name

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

Mostra todas as metas do grupo de links.

--config name

Mostra as alternativas disponíveis para um grupo de links e permite ao utilizador seleccionar interactivamente qual delas usar. O grupo de links é actualizado.

--help

Mostra a mensagem de utilização e termina.

--version

Mostra a versão e termina.

OPÇÕES

--altdir directory

Especifica o directório alternativo, quando é suposto este ser diferente do predefinido. A predefinição é «/etc/alternatives».

--admindir directory

Especifica o directório administrativo, quando este deve ser diferente do predefinido. A predefinição é «/var/lib/dpkg/alternatives» se DPKG_ADMINDIR não estiver definido.

--instdir directory

Especifica o directório de instalação onde os links alternativos serão criados (desde versão 1.20.1). A predefinição é «/» se DPKG_ROOT não estiver definido.

--root directory

Especifica o directório raiz (desde 1.20.1). Isto também define alternativas, directórios de instalação e administração para corresponder. A predefinição é «/» se DPKG_ROOT não estiver definido.

--log file

Especifica o ficheiro de relatório (desde a versão 1.15.0), quando este é suposto ser diferente do predefinido (/var/log/alternatives.log).

--force

Permite substituir ou largar qualquer ficheiro real que está instalado quando um link alternativo tem de ser instalado ou removido.

--skip-auto

Salta o aviso de configuração para alternativas que as quais já estão correctamente configuradas em modo automático. Esta opção é apenas relevante com --config ou --all.

--quiet

Não gera nenhuns comentários, a menos que ocorram erros.

--verbose

Gera mais comentários acerca do que está a ser feito.

--debug

Gera ainda mais comentários, úteis para depuração, acerca do que está a ser feito (desde versão 1.19.3).

ESTADO À SAÍDA

0

A acção requisitada foi executada com sucesso.

2

Foram encontrados problemas ao analisar a linha de comandos ou ao executar a acção.

AMBIENTE

DPKG_ROOT

Se definido e as opções --instdir ou --root não foram especificadas, será usado como o directório raiz do sistema de ficheiros.

DPKG_ADMINDIR

Se definido e se a opção --admindir não foi especificada, será usado como o directório administrativo base.

FICHEIROS

/etc/alternatives/

O directório de alternativas predefinido. Pode ser sobreposto pela opção --altdir.

/var/lib/dpkg/alternatives/

O directório de administração predefinido. Pode ser sobreposto pela opção --admindir.

FORMATO DE CONSULTA

O formato --query está a usar um formato liso tipo RFC822. É composto de n estrofes + 1 onde n é o número e alternativas disponíveis no grupo de link questionado. A primeira estrofe contem os seguintes campos:
Name:
name

O nome alternativo no directório alternativo.

Link: link

O nome genérico da alternativa.

Slaves: list-of-slaves

Quando este campo está presente, as próximas linhas contêm todas os links escravos associados ao link mestre da alternativa. Há um escravo por linha. Cada linha contem um espaço, o nome genérico da alternativa escravo, outro espaço, e o caminho para o link escravo.

Status: status

O estado da alternativa (auto ou manual).

Best: best-choice

O caminho da melhor alternativa para este grupo de links. Não presente se não existirem alternativas disponíveis.

Value: currently-selected-alternative

O caminho da alternativa seleciona actualmente. Também pode tirar o valor mágico none. É usado quando o link não existe.

As outras estrofes descrevem as alternativas disponíveis no grupo de links questionado.
Alternative:
path-of-this-alternative

Caminho para a alternativa desta estrofe.

Priority: priority-value

Valor da prioridade desta alternativa.

Slaves: list-of-slaves

Quando este campo está presente, as próximas linhas contêm todas as alternativas escravas associadas ao link mestre da alternativa. Há um escrava por linha. Cada linha contem um espaço, o nome genérico da alternativa escravo, outro espaço, e o caminho para a alternativa escravo.

Exemplo
$ 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ÓSTICO

Com --verbose o update-alternatives fala incessantemente acerca das suas atividades no seu canal de saída standard. Se ocorrerem problemas, o update-alternatives envia mensagens de erro no seu canal de erros standard e retorna um estado de saída de 2. Estes diagnósticos deverão ser suficientemente explicativos, se você acha que não o são, por favor reporte isso como um bug.

EXEMPLOS

There are several packages which provide a text editor compatible with vi, for example nvi and vim. Which one is used is controlled by the link group vi, which includes links for the program itself and the associated manual page.

Para mostrar os pacotes disponíveis que fornecem o vi e a configuração actual para ele, use a acção --display.

update-alternatives --display vi

Para escolher uma implementação particular do vi, use este comando como root e depois selecione um número da lista.

update-alternatives --config vi

Para voltar atrás e ter a implementação vi escolhida automaticamente, faça isto como root:

update-alternatives --auto vi

VEJA TAMBÉM

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

TRADUÇÃO

Américo Monteiro

Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro [AT] gmx.com>.