Existe uma maneira de listar todas as 'alternativas' configuráveis (links simbólicos para comandos similares) no sistema?

17

O comando alternatives (package chkconfig ) no RHEL / Fedora gerencia links simbólicos que vinculam um nome genérico a uma das implementações alternativas. Por exemplo, mta group of symlinks pode ser fornecido pelo Sendmail e pelo Postfix (para implementar, por exemplo, sendmail command):

alternatives --display mta

Embora eu possa --display um grupo de links simbólicos, preciso adivinhar seu nome primeiro (por exemplo, mta ).

Posso simplesmente listar todos os possíveis grupos configuráveis de links simbólicos (como mta ) para escolher?

O motivo é que eu esqueço alguns nomes de grupos ocasionalmente.

    
por uvsmtid 05.03.2013 / 17:01

4 respostas

14

A resposta exata é:

ls /var/lib/alternatives

Diretório /etc/alternatives mantém lista longa e plana de todos os links simbólicos mistura mestres e escravos juntos. Slave links simbólicos não podem ser usados com o comando alternatives --display [symlink] .

Ao mesmo tempo, o diretório /var/lib/alternatives contém informações de status (incluindo relação mestre-escravo) para cada grupo na lista encurtada de nomes de arquivos todos dos quais podem ser diretamente usado com a opção --display . Por exemplo, /var/lib/alternatives/java :

alternatives --display java
    
por 07.03.2013 / 04:19
15

No Debian (mas não no Fedora ou RHEL), para ver uma lista de todos os "nomes alternativos mestres":

update-alternatives --get-selections

--get-selections list master alternative names and their status.

E para cada um dos listados, você pode executar --list $ALTERNATIVE_NAME , por exemplo

update-alternatives --list editor

--list name Display all targets of the link group.

Se você quiser ver uma lista de todas as alternativas em seus respectivos grupos, você pode executar o seguinte em fish shell:

for alternative in (update-alternatives --get-selections)
    echo $alternative 
    update-alternatives --list (echo $alternative | cut -d" " -f1)
    echo
end | pager

A sintaxe (ba | z)? sh deve ser algo semelhante.

Para alterar as alternativas, execute sudo update-alternatives --config $ALTERNATIVE_NAME

    
por 26.06.2016 / 23:38
4

A resposta mais simples seria ...

ls /etc/alternatives
    
por 05.03.2013 / 17:05
0

No Ubuntu 12.04 (pode ser algumas versões anteriores, também a serem verificadas) e provavelmente também Debian (a ser verificado):

ls /var/lib/dpkg/alternatives

Liste apenas para obter nomes alternativos configuráveis, já que as entradas nesses diretórios não são links. A propósito, pode haver arquivo compactado nesse diretório, portanto, os nomes listados ali nem sempre podem ser usados como estão. Ex. Eu tenho um /var/lib/dpkg/alternatives/psql.1.gz

    
por 12.07.2014 / 11:06