Mudando a versão do Java através do apt?

Mudando a versão do Java através do apt?

(Desculpas antecipadamente se minha formatação estiver errada, esta é minha primeira postagem, sinta-se à vontade para me corrigir).

Normalmente, quando quero descobrir qual versão do Java estou usando, executo:

java -version

versão java "1.7.0_55"

Se eu quiser alterar a versão do java (de java 7 para java 6), posso simplesmente apontar o link simbólico (/usr/bin/java) para o binário java do JRE correspondente. (Não precisamos nos preocupar com o compilador javac ou java_ws aqui, neste caso, aliás).

# readlink -f /usr/bin/java

/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java

# ln -s /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java /usr/bin/java

# java -version

versão java "1.6.0_31"

Isso é bom e, pelo que posso ver, funciona.

No Solaris, existe uma ótima maneira de fazer isso através da ferramenta mediadora pkg:

myHost# pkg mediator -H java

sistema java 1.7 sistema

Para alterar o Java de 1.7 para 1.6:

pkg set-mediator -V 1.6 java

Então para confirmar as alterações

myHost# pkg mediator -H java

sistema java local 1.6

Eu estou querendo saber se apttem um equivalente? Ou existe uma maneira mais elegante de alternar entre versões Java?

Editar: isso também pode se aplicar ao python, então não estou procurando respostas específicas de java

Responder1

A maneira correta de alternar entre várias versões de um software instalado é usar:

sudo update-alternatives --config <package>

Então, para java, você precisa executar:

sudo update-alternatives --config java

que deve retornar as versões instaladas, que no meu caso é:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      manual mode

Para alternar entre versões você pode inserir selectionie 0, 1, 2 neste caso, dependendo da versão para a qual deseja mudar.

Porém, no caso de python, python2 e python3 não são alternativas, então você não encontrará esta opção, será necessário criar aliases para isso.

Portanto, se você deseja que python se refira à versão 2.xx do python e que python3 se refira à versão 3.xx do python, você pode abrir seu ~/.bash_aliasesarquivo e inserir o seguinte:

alias python=`/usr/bin/python`
alias python3=`/usr/bin/python3`

Este arquivo pode estar vazio se você não tiver criado aliases antes, o que é bom. Você pode até querer o alias ao contrário, ou seja, python para se referir a python3 e python2 para se referir a python2, você pode ajustar o alias como quiser.

Como você pode ver, depende se as versões instaladas são alternativas umas das outras - se forem alternativas, você pode usar update-alternatives, caso contrário, você terá que ajustar usando aliases ou soft-links. Pode haver soluções melhores e mais limpas, mas não as conheço.

informação relacionada