O que exatamente 'update-alternatives' faz?

81

Para que é usado o comando update-alternatives ?

Veja este exemplo:

sudo update-alternatives --install /usr/bin/java java /usr/local/java/jre1.7.0_09/bin/java 1

O que isso faz? Como é diferente de adicionar o jdk ao caminho?

Digamos que eu tenha executado o comando. Como eu voltaria ao estado original?

    
por Developer Android 27.12.2012 / 12:13

1 resposta

60

Atualiza os links em /etc/alternatives para apontar para o programa para essa finalidade. Há muitos exemplos, como x-www-browser , editor , etc., que serão vinculados ao navegador ou editor de sua preferência. Alguns scripts ou ferramentas do sistema podem querer que você edite um arquivo manualmente (por exemplo, conflitos de configuração em dpkg ) e eles examinarão as alternativas para dar a você o editor de escolha. Para java , esse é o ambiente de tempo de execução Java - Oracle, OpenJRE, etc.

Os links em /etc/alternatives são apenas links simbólicos. Você pode vê-los usando por exemplo

ls -l /etc/alternatives

Além disso, os binários /usr/bin regulares também são links simbólicos. Por exemplo:

ls -l /usr/bin/java
  lrwxrwxrwx 1 root root 22 Aug 14 10:33 /usr/bin/java -> /etc/alternatives/java
ls -l /etc/alternatives/java
  lrwxrwxrwx 1 root root 46 Aug 14 10:33 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java

Portanto, nenhum PATH precisa ser modificado. Apenas usa links simbólicos.

    
por gertvdijk 27.12.2012 / 12:19