Vivendo e Aprendendo

Experiência prática na administração de Banco de Dados

Alterne entre versões Java facilmente [update-alternatives] parte 2

by Gilberto C. Andrade on 26 Março 2012

Tagged as: Banco-do-Brasil, Chromium, Internet, Java, Linux, openSUSE, update-alternatives,

A um tempo atrás escrevi sobre o utilitário de sistema update-alternatives e mostrei como alternar entre versões do Java usando o mesmo. Naquele mesmo post mostrei que o Java já havia sido instalado e configurado pelo sistema de gerenciamento de pacotes pre-definido - Yast. Como já é de conhecimento de alguns a Oracle mudou a forma de licenciamento do Java e com isso a maioria das distribuições - senão todas - optaram por retirar o Java distribuído pela Oracle de seus repositórios. Com isso, se você precisar instalar a versão Java da Oracle terá que fazê-la manualmente.

Antes de começar, quero notificar aos usuários do navegador Chromium que como eles tive dificuldades, no início, para fazê-lo funcionar com Java ao acessar o site do Banco do Brasil. Para confirmar este problema é só fazer uma pesquisa no Google usando a seguinte sentença: chromium banco do brasil. Então para a felicidade geral nação “chromiumana”, relato que esta maneira manual aqui demonstrada soluciona este pequeno problema.

Então vamos lá!
Os passos são esses:

  • Baixe a versão RPM do site da Oracle - baixei a versão jre-7u3-linux-i586.rpm;
  • Instale o jre com yast2, zypper, ou com um duplo clique no rpm pelo dolphin ou nautilus:
    SUGEP265338:~ # zypper in jre-7u3-linux-i586.rpm
  • Agora precisamos adicionar esta instalação às alternativas já instaladas, de forma a disponibilizá-la como uma opção:

    SUGEP265338:~ # update-alternatives –install /usr/bin/java java /usr/java/jre1.7.0_03/bin/java 40

  • Faremos o mesmo para o plugin java. Esta opção é muito importante pois estabelece qual versão Java para navegação web estaremos usando:

    SUGEP265338:~ # update-alternatives –install /usr/lib/browser-plugins/javaplugin.so javaplugin /usr/java/jre1.7.0_03/lib/i386/libnpjp2.so 40

  • Bom, agora vem a parte mais fácil que é, como escrevi no primeiro post, alternar entre tais versões:

    SUGEP265338:~ # update-alternatives –config java There are 2 choices for the alternative java (providing /usr/bin/java).    Selection Path Priority Status ———————————————————— *  /usr/lib/jvm/jre-1.6.0-openjdk/bin/java 17105 auto mode  1 /usr/java/jre1.7.0_03/bin/java 40 manual mode  2 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java 17105 manual mode   Press enter to keep the current choice[*], or type selection number: 1 update-alternatives: using /usr/java/jre1.7.0_03/bin/java to provide /usr/bin/java (java) in manual mode. SUGEP265338:~ #

  • E finalmente, o mais importante, o plugin para os navegadores web:

    SUGEP265338:~ # update-alternatives –config javaplugin There are 2 choices for the alternative javaplugin (providing /usr/lib/browser-plugins/javaplugin.so).    Selection Path Priority Status ———————————————————— *  /usr/lib/IcedTeaPlugin.so 17106 auto mode  1 /usr/java/jre1.7.0_03/lib/i386/libnpjp2.so 40 manual mode  2 /usr/lib/IcedTeaPlugin.so 17106 manual mode   Press enter to keep the current choice[*], or type selection number: 1 update-alternatives: using /usr/java/jre1.7.0_03/lib/i386/libnpjp2.so to provide /usr/lib/browser-plugins/javaplugin.so (javaplugin) in manual mode. SUGEP265338:~ #

Pronto! Feche o navegador e faça um teste. Até a próxima!

Atualização(12/07/2012): Hoje pela manhã, procurando por mudanças que torne o script update-alternatives compatível com o jdk 1.7, me deparei com uma forma bem mais simples de instalar manualmente o jdk Oracle. Veja:

 
zypper install jdk-7-linux-x64.rpm
cd /usr/java/jdk1.7.0/bin
for bin in *; do update-alternatives --install /usr/bin/$bin $bin $(pwd)/$bin 20000; done

Agora o javaplugin para o navegador:

update-alternatives –install /usr/lib64/browser-plugins/javaplugin.so javaplugin /usr/java/jdk1.7.0/jre/lib/amd64/libnpjp2.so 20000

Usei a versão 64bits mas o procedimento vale também para 32bits.

comments powered by Disqus