segunda-feira, 16 de março de 2015

Oracle Java8 no Debian

O java da oracle não vem instalado no Debian e não tem em seus repositórios ,está versão é requisitada por sites de bancos e outros que usam o mesmo.
Para ter ele no Debian temos vários métodos,mas aqui vou descrever um bem legal,usando pacotes .rpm.
Sim rpm no Debian,isso é possível com o uso de um conversor o alien e para pacotes .tar.gz utilizando o java-package







Atualizado (remoção do openjdk)


Método com .RPM


Em primeiro lugar instale o aliene o libcommons-compress-java

Abra o terminal e de o comando

sudo apt-get install alien libcommons-compress-java

Para debian i386 (x86)


De o comando abaixo para criar o diretório temporário.

mkdir ~/temp

De o comando para entrar no diretório temp

cd ~/temp

De o comando abaixo no terminal para fazer o download diretamente no site da oracle.

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jre-8u40-linux-i586.rpm"

De o comando abaixo para criar o .deb.

sudo alien --scripts jre-8u40-linux-i586.rpm

De o comado abaixo para remover o openjdk.

sudo apt-get remove --purge openjdk*
Para corrigir o problema interno do oracle-java,quanto ao /usr/sbin/alternatives não existir.

sudo touch /usr/sbin/alternatives

e esse para fixar as permissões
sudo chmod 775 -fR /usr/sbin/alternatives


De o comando abaixo para instalar o java.

sudo dpkg -i *.deb

De o comando abaixo para ativar o java no iceweasel.

sudo ln -s /usr/java/jre1.8.0_40/lib/i386/libnpjp2.so /usr/lib/mozilla/plugins

Para debian amd64 (x64)


De o comando abaixo para criar o diretório temporário.

mkdir ~/temp

De o comando para entrar no diretório temp

cd ~/temp

De o comando abaixo no terminal para fazer o download diretamente no site da oracle.

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jre-8u40-linux-x64.rpm"

De o comando abaixo para criar o .deb.

sudo alien --scripts jre-8u40-linux-x64.rpm

De o comado abaixo para remover o openjdk.

sudo apt-get remove --purge openjdk*
Para corrigir o problema interno do oracle-java,quanto ao /usr/sbin/alternatives não existir.

sudo touch /usr/sbin/alternatives
e esse para fixar as permissões
sudo chmod 775 -fR /usr/sbin/alternatives
De o comando abaixo para instalar o java.

sudo dpkg -i *.deb

De o comando abaixo para ativar o java no iceweasel.

sudo ln -s /usr/java/jre1.8.0_40/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins

Método com .tar.gz




Para debian i386 (x86)


De o comando abaixo para criar o diretório temporário.

mkdir ~/temp

De o comando para entrar no diretório temp

cd ~/temp

De o comando abaixo no terminal para fazer o download diretamente no site da oracle.

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jre-8u40-linux-i586.tar.gz"

De o comando abaixo para instalar o java-package

sudo apt-get install java-package

De o comando abaixo para criar o .deb.

sudo make-jpkg jre-8u40-linux-i586.tar.gz

De o comado abaixo para remover o openjdk.

sudo apt-get remove --purge openjdk*

De o comando abaixo para instalar o java.

sudo dpkg -i *.deb

De o comando abaixo para ativar o java no iceweasel.

sudo ln -s /usr/java/jre1.8.0_40/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins


Para debian amd64 (x64)


De o comando abaixo para criar o diretório temporário.

mkdir ~/temp

De o comando para entrar no diretório temp

cd ~/temp

De o comando abaixo no terminal para fazer o download diretamente no site da oracle.

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jre-8u40-linux-x64.tar.gz"

De o comando abaixo para instalar o java-package

sudo apt-get install java-package

De o comando abaixo para criar o .deb.

make-jpkg jre-8u40-linux-x64.tar.gz

De o coamdo abaixo para remover o openjdk.

sudo apt-get remove --purge openjdk*

De o comando abaixo para instalar o java.

sudo dpkg -i *.deb

De o comando abaixo para ativar o java no iceweasel.

sudo ln -s /usr/java/jre1.8.0_40/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins



Créditos da criação do script para o wget aqui

Este tutorial é atualização desse


13 comentários:

  1. Olá lobo! Excelente dica! Porém quando vou instalar o java (dpkg -i *.deb) aparece esse erro:

    (Lendo banco de dados ... 148273 ficheiros e directórios actualmente instalados.)
    Preparando para substituir jre1.8.0-40 1.8.040-1 (usando jre1.8.0-40_1.8.040-1_amd64.deb) ...
    Desempacotando substituto jre1.8.0-40 ...
    /var/lib/dpkg/info/jre1.8.0-40.postrm: line 586: /usr/sbin/alternatives: Arquivo ou diretório não encontrado
    dpkg: aviso: sub-processo antigo script post-removal retornou estado de saída de erro 127
    dpkg: em vez disso a tentar script do novo pacote ...
    find: `/usr/java/*': Arquivo ou diretório não encontrado
    /var/lib/dpkg/tmp.ci/postrm: line 586: /usr/sbin/alternatives: Arquivo ou diretório não encontrado
    dpkg: erro ao processar jre1.8.0-40_1.8.040-1_amd64.deb (--install):
    sub-processo novo script post-removal retornou estado de saída de erro 127
    find: `/usr/java/*': Arquivo ou diretório não encontrado
    /var/lib/dpkg/tmp.ci/postrm: line 586: /usr/sbin/alternatives: Arquivo ou diretório não encontrado
    dpkg: erro enquanto efetuava a limpeza:
    sub-processo novo script post-removal retornou estado de saída de erro 127
    Erros foram encontrados durante o processamento de:
    jre1.8.0-40_1.8.040-1_amd64.deb

    Tem alguma ideia do que pode ser feito? Meu sistema é X64 e utilizei o método com .rpm.

    ResponderExcluir
    Respostas
    1. Refis a parte dos links alterando os endereços, aparentemente um erro no arquivo a oracle, em não criar o /usr/sbin/alternatives
      Para instalar remova o resíduo da tentativa anterior
      sudo apt-get remove --purge jre1*
      Depois reinstale seguindo o tutorial

      E muito obrigado por avisar

      Excluir
    2. opa...outro erro...rsrs....quando executei apt-get remove --purge jre1*

      E: O pacote jre1.8.0-40 precisa ser reinstalado, mas não foi possível encontrar um arquivo para o mesmo.

      Excluir
    3. Não foi instalado, siga o tutorial

      Excluir
    4. Ta dificil ó lobo.....quando executo:
      apt-get remove --purge openjdk*

      aparece:
      O pacote jre1.8.0-40 precisa ser reinstalado, mas não foi possível encontrar um arquivo para o mesmo.

      Quando executo dpkg -i *.deb

      aparece o mesmo erro do meu primeiro comentário.

      Já baixei novamente o arquivo do link que vc disse que corrigiu.

      Excluir
    5. tá complicado kkkk, pesquisando descobri que os erros são bugs velhos do oracle java.

      Em primeiro lugar delete a para ~/temp
      rm -fr ~/temp
      e remova os residuos
      sudo apt-get remove --purge jre1*

      O primeiro erro
      /var/lib/dpkg/info/jre1.8.0-40.postrm: line 586: /usr/sbin/alternatives: Arquivo ou diretório não encontrado

      tem que criar o arquivo com o comando

      sudo touch /usr/sbin/alternatives

      e esse para fixar as permissões
      sudo chmod 775 -fr /usr/sbin/alternatives

      A tranqueira também dá outro erro

      Error: unpack200 - command could not be found.

      instale o libcommons-compress-java

      sudo apt-get install libcommons-compress-java

      siga o tutorial e vai de boa

      lobo@android:~/temp$ sudo dpkg -i jre1.8.0-40_1.8.040-1_amd64.deb
      A seleccionar pacote anteriormente não seleccionado jre1.8.0-40.
      (Lendo banco de dados ... 210299 ficheiros e directórios actualmente instalados.)
      A preparar para desempacotar jre1.8.0-40_1.8.040-1_amd64.deb ...
      A descompactar jre1.8.0-40 (1.8.040-1) ...
      Configurando jre1.8.0-40 (1.8.040-1) ...
      Unpacking JAR files...
      rt.jar...
      jsse.jar...
      charsets.jar...
      localedata.jar...
      jfxrt.jar...
      plugin.jar...
      javaws.jar...
      deploy.jar...
      lobo@android:~/temp$

      Excluir
    6. Já tô ficando é com vergonha....quando dou o apt-get remove --purge jre1* aparece "O pacote jre1.8.0-40 precisa ser reinstalado, mas não foi possível encontrar um arquivo para o mesmo."

      procurei esse bendito jre1.8.0-40
      dpkg -l | grep jre1 e a saída foi essa:
      iHR jre1.8.0-40 1.8.040-1 amd64 Java Platform Standard Edition Runtime Environment

      O que estou achando estranho é o começo dessa saída: "iHR".

      Excluir
    7. Abre o .deb com o gdebi e veja se ele diz que está instalado, se disser remova por ele

      Excluir
    8. acho que fodeo de vez....não consigo instalar mais nada...aparece a mesma mensagem dizendo que "o jre1.8.0.... tem que ser instalado mas não foi possivel encontrar um arquivo para o mesmo"

      não consigo instalar o gdebi...aparece a mesma mensagem....ao remover, a mesma coisa.....ao tentar abrir o synaptic também....

      Excluir
    9. Nunca vi isso cara, em todo caso,remova tudo que tiver na sua hoje desses arquivos

      no terminal de os comandos

      sudo apt-get clean

      sudo rm -rf /var/lib/apt/lists/*

      sudo apt-get update

      sudo dpkg --configure -a

      sudo apt-get autoremove

      Isso tem que praticamente zerar teu apt

      Excluir
    10. Esse vai mais fundo e é dificil passa dele

      sudo dpkg --remove --force-remove-reinstreq jre1

      ou

      sudo dpkg --remove --force-remove-reinstreq jre1*

      ou

      sudo dpkg --remove --force-remove-reinstreq jre1.8.0-40

      Todas alternativas de nomes para remoção

      Excluir
    11. Olá Lobo! Consegui resolver as pendências do apt. Do jeito que você indicou, sempre retornava a informação dizendo que tinha que reinstalar o jre18.0-40.

      Depois que resolvi, segui o tutorial e o java instalou de boa! Nem precisou criar o arquivo alternatives.

      Agradeço pelo ajuda e pelo conhecimento adquirido! Mais um! o/

      Excluir
    12. Que legal cara, fico contente :)

      Excluir