Como o 'update-alternatives --config somecommand' localiza os links simbólicos para 'somecommand'?

1

De link

update-alternatives --config java works by installing symlinks to commands as /usr/bin/java, /usr/bin/javac and so on.

Como o update-alternatives --config somecommand encontra os links simbólicos para somecommand ?

Por exemplo, ele depende de $PATH e, portanto, funciona da mesma forma como o bash encontra os arquivos para somecommand ao executar somecommand diretamente no bash?

Se o arquivo para somecommand não for um symlink, update-alternative --config somecommand funcionará?

Obrigado.

    
por Tim 22.01.2018 / 14:09

1 resposta

4

A maneira como o update-alternatives funciona é descrita em sua página de manual . A lista de alternativas disponíveis para um determinado comando (ou arquivo, em geral - alternativas não são limitadas a comandos) é armazenada em um arquivo em /var/lib/dpkg/alternatives no Debian e derivados; Assim, as alternativas para java são armazenadas em /var/lib/dpkg/alternatives/java . No Fedora, RHEL e derivados, os arquivos são armazenados em /var/lib/alternatives .

Quando um pacote deseja fornecer uma alternativa, ele é instalado usando update-alternatives --install (e parâmetros apropriados); quando deseja remover uma alternativa, faz isso usando update-alternatives --remove . Você pode usá-los para fornecer suas próprias alternativas, se necessário.

Note que no caso do Java especificamente, no Debian e em derivativos, o tratamento de alternativas é um pouco mais complexo e você deve usar update-java-alternatives em vez de manipular todas as alternativas manualmente.

Se por algum motivo um arquivo gerenciado alternativo não for um link simbólico, update-alternatives considerará que a alternativa está quebrada e se recusará a tocá-lo.

    
por 22.01.2018 / 14:15