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

1

(Desculpas antecipadamente se minha formatação estiver desativada, este é meu primeiro post, sinta-se à vontade para me corrigir).

Normalmente, quando quero descobrir qual versão do java eu estou usando, eu corro:

java -version

  

versão java "1.7.0_55"

Se eu quiser alterar a versão java (do java 7 para o 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, btw).

# 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"

Tudo bem, e até onde eu sei, funciona.

No Solaris, há uma maneira legal de fazer isso através da ferramenta pkg mediator:

myHost# pkg mediator -H java

  

sistema java system 1.7

Para alterar o Java de 1.7 para 1.6:

pkg set-mediator -V 1.6 java

Em seguida, confirme as alterações

myHost# pkg mediator -H java

  

sistema local java 1.6

Eu estou querendo saber se apt tem um equivalente? Ou há uma maneira mais elegante de alternar entre as versões do java?

Edit: Isso também poderia se aplicar ao python, então eu não estou procurando por respostas específicas do java

    
por Philkav 06.05.2014 / 14:37

1 resposta

1

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 as versões, você pode inserir selection , ou seja, 0, 1, 2 nesse caso, dependendo da versão para a qual deseja alternar.

No entanto, no caso de python, python2 e python3 não são alternativas, então você não encontrará essa opção, você precisará criar aliases para isso.

Portanto, se você quiser que o python se refira à versão 2.xx do python e ao python3 para se referir à versão 3.xx do python, você pode abrir o arquivo ~/.bash_aliases e digitar 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 uma da outra - se elas são alternativas, você pode usar update-alternatives , se não, você terá que ajustar usando aliases ou soft-links. Pode haver soluções melhores e mais limpas, mas eu não estou ciente disso.

    
por jobin 06.05.2014 / 14:44