
(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 apt
tem 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 selection
ie 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_aliases
arquivo 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.