sábado, 14 de janeiro de 2012

Atualizando o Java da Oracle no Debian e Ubuntu

Atualização (10/09/2013) - Depois de algum tempo já tem uma atualização em: http://www.adilson.net.br/2013/09/atualizando-o-java-da-oracle-no-debian.html

Desde o final de agosto a Oracle resolve descontinuar a sua licença que permitia as diversas distribuições Linux de fornecer os binários do java em favor do OpenJDK. Uma notícia que deixou muita gente preocupada.

Sem java da Oracle nas distribuições.

Desde daquela data não houve mais atualizações no java, a não ser pelo próprio OpenJDK. Mesmo assim a preocupação de muitos é que ainda existem vários aplicativos que não funciona no OpenJDK. Além dessa há uma preocupação já que algumas distribuições já estão planejando atualizações que removem o java descontinuado do sistema, o que realmente deixaria muitos usuários na mão.



Mas a comunidade reage bem rápido. Ao menos na distrubição Ubuntu e, por tabela, na Debian, criaram um PPA com a última versão da máquina virtual Java. Porém a Canonical desabilitou o PPA no dia seguinte por questões legais de distribuição dos binários, deixando novamente os usuários na mão.

Mas ainda tem uma solução, ao menos na Debian e Ubuntu. Criei um script simples mas que é eficaz para a última versão corrente do java. O que ele faz é pegar os scripts que geram o pacote do java em um repositório git, baixa os instaladores direto do site da Oracle, que é a única forma de não violar a proibição da redistribuição. E gera os pacotes necessários.

De resto é só dar um dpkg -i *.deb e pronto.

Segue o script logo abaixo:

#!/bin/bash


#baixa os arquivos para gerar os pacotes
git clone git://github.com/rraptorr/sun-java6.git sun-java6


cd sun-java6


#baixa os binários do jdk do site da Oracle
wget -c http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-linux-i586.bin
wget -c http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-linux-x64.bin


#Baixa todas as dependencias
apt-get install debhelper  lsb-release defoma unzip bzip2 patch libasound2 unixodbc libx11-6 libxext6 libxi6 libxt6 libxtst6
apt-get install lib32asound2 ia32-libs


#Gera os pacotes
dpkg-buildpackage -b
cd ..

#agora é só instalar

Para rodar só precisa digitar sudo ./script.sh ou ./script.sh se estiver como root.

Isso é válido apenas para a última versão (6 update 30). No caso de uma atualização só precisa copiar o endereço de download dos dois instaladores nas linhas do wget e alterar o changelog caso o mantenedor não atualize o repositório a tempo.

Tenham um bom final de semana.

4 comentários:

  1. Muito bom artigo!! Mesmo que a pessoa resolva modificar ou fazer manualmente, o script está bem comentado e é fácil de entender para qualquer um. Parabéns!!

    ResponderExcluir
  2. Eu vi que alguém tentou postar uma dúvida relacionada a dependências. Neste caso pode fazer o seguinte no final:

    dpkg -i *.deb

    Ou, se insistir nos erros:

    dpkg --force-all *.deb

    Assim todos os pacotes serão instalados.

    ResponderExcluir
  3. Olá Adilson, obrigado por postar este script, ajudou bastante!

    Só como nota, tive que instalar o pacote java-commons no meu Ubuntu 11.04 para que a instalação dos pacotes DEB criados fosse realizada sem problemas!

    Para usuários sem necessidades de desenvolver em Java instalar os pacotes abaixo parecer ser suficiente:

    sudo dpkg -i sun-java6-bin_6.30-4_amd64.deb sun-java6-fonts_6.30-4_all.deb sun-java6-jre_6.30-4_all.deb sun-java6-plugin_6.30-4_amd64.deb

    ResponderExcluir
  4. Olá Adilson,

    na versão atual(7) do Oracle Java atualizei o repositorio git

    github.com/rraptorr/oracle-java7

    e o endereço de download dos instaladores Java

    http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-i586.tar.gz

    http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-x64.tar.gz

    Obrigado!

    ResponderExcluir