update-alternatives(1) | dpkg suite | update-alternatives(1) |
update-alternatives - mantém links simbólicos que determinam os comandos predefinidos
update-alternatives [option...] command
update-alternatives cria, remove, mantêm e mostra informação acerca dos links simbólicos que abrangem o sistema de alternativos de Debian.
É 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.
O sistema de alternativas de Debian destina-se a resolver este problema. Um nome genérico no sistema de ficheiros é partilhado por todos os ficheiros que fornecem funcionalidades intercambiáveis. O sistema de alternativas e o administrador do sistema juntamente determinam qual ficheiro real é referenciado por este nome genérico. Por exemplo, se os editores de texto ed(1) e nvi(1) estiverem ambos instalados no sistema, o sistema de alternativas irá fazer com que o nome genérico /usr/bin/editor se refira a /usr/bin/nvi por predefinição. O administrador do sistema pode sobrepor isto e fazê-lo referir-se a /usr/bin/ed em vez do primeiro, e o sistema de alternativas não irá alterar esta definição até que lhe seja requerido explicitamente fazê-lo.
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.
Isto é muitas vezes útil para se sincronizar várias alternativas, para que sejam mudadas como um grupo; por exemplo, quando estão instaladas várias versões do editor vi(1), o manual referenciado por /usr/share/man/man1/vi.1 deve corresponder ao executável referenciado por /usr/bin/vi. update-alternatives lida com isto por meio de links master e slave; quando o mestre é mudado, quaisquer slaves associados são também mudados. Um link mestre e os seus slaves associados fazem um group de link.
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.
Como as actividades de update-alternatives estão bastante envolvidas, alguns termos específicos irão ajudar a explicar a sua operação.
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.
O formato --query está a usar um formato liso tipo RFC822. É composto de n blocos + 1 onde n é o número e alternativas disponíveis no grupo de link questionado. O primeiro bloco contem os seguintes campos:
Os outros blocos descrevem as alternativas disponíveis no grupo de links questionado.
$ 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
Com --verbose o update-alternatives fala incessantemente acerca das sua actividades 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.
Existem vários pacotes que fornecem um editor de texto compatível com o vi, por exemplo e nvi e o vim. Qual deles é o usado é controlado pelo grupo de links vi, que inclui links para o próprio programa e o manual associado.
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 seleccione 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
ln(1), FHS (o Standard de Hierarquia de Sistema de Ficheiros).
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro@gmx.com>.
2023-09-13 | 1.20.13 |