[Tutorial] Instalação manual do Ambiente de Execução Java (JRE) no *Ubuntu Linux

Iniciado por Sampayu, 17 de Janeiro de 2014, 19:25

tópico anterior - próximo tópico

Em qual distribuição GNU/Linux você utiliza este tutorial (caso use mais de uma, informe a principal)?

Arch
0 (0%)
Debian
2 (2.6%)
ElementaryOS
0 (0%)
Fedora
1 (1.3%)
Gentoo
0 (0%)
Mint (inclusive LMDE)
6 (7.7%)
OpenSUSE
0 (0%)
*Ubuntu (Ubuntu, XUbuntu, KUbuntu, LUbuntu...)
64 (82.1%)
Outra
2 (2.6%)
Nenhuma. Vim aqui só por curiosidade.
3 (3.8%)

Total de membros que votaram: 76

Votação encerrada: 01 de Junho de 2016, 19:20

Sampayu

Citação de: lapc online 21 de Abril de 2014, 17:55
Olá Sampayu, obrigado por sua atenção. Renomeei a pasta /usr/lib/chromium-browser para /usr/lib/chromium e alterei o script de partida chromium-browser na pasta /usr/bin para reconhecer o novo path. O Chromium iniciou sem problemas, mas não reconheceu o novo local do plugin (/usr/lib/chromium/plugins). Estou rodando a última versão do Chromium, obtida no repositório da Canonical, no Ubuntu 14.04 32 bits atualizado. Perdi algo?

Rapaz... feliz ou infelizmente, no Ubuntu 14.04 (e num futuro não muito distante também em outras distribuições Linux, e também em outros sistemas operacionais, inclusive Windows) não será mais possível usar o navegador Google Chromium (e em breve também o Google Chrome) com plugins NPAPI. Portanto, resumindo: no Ubuntu 14.04 você não conseguirá fazer o plugin Sun/Oracle Java funcionar com o seu navegador Google Chromium. :(

NPAPI significa "Netscape Plugin API": uma tecnologia desenvolvida pela Netscape na década de 90 que possibilitou o uso de plugins dentro dos navegadores web. Foi graças à NPAPI que passamos a dispor de plugins em nossos navegadores! :)

Até hoje, os navegadores mais populares usam a tecnologia NPAPI. O problema é que essa tecnologia está ultrapassada, é "pesada" (alguns plugins NPAPI rodam "pesado" nos navegadores) e possui vulnerabilidades que têm sido muito exploradas por crackers em plugins NPAPI famosos, principalmente nos plugins Java e Flash. Isso levou a Google a desenvolver uma nova API, denominada Aura Client API, que se baseia num kit de desenvolvimento (toolkit) e framework também desenvolvido pela Google e denominado Aura. Com essa tecnologia Aura, não será necessário instalar plugin nenhum, porém o website que você acessar terá que ter suporte a essa tecnologia.

No Linux, a tecnologia NPAPI depende de um kit de desenvolvimento (toolkit) chamado GTK2, porém a empresa Google está querendo se livrar (e já começou a se livrar...) da dupla GTK2+NPAPI para migrar para o seu novo padrão Aura+Aura Client API em seus navegadores e também em seu sistema operacional ChromeOS. E isso começou a acontecer agora, com o Chromium no Ubuntu 14.04.

Também a empresa Mozilla parece que começou a alertar os desenvolvedores para o fato de que plugins são uma tecnologia obsoleta. Isso sinaliza a possibilidade de também a fundação Mozilla futuramente parar de suportar plugins NPAPI em seu navegador Firefox.

No caso dos navegadores da Google, como GTK2 e NPAPI estão sendo substituídos pelo Aura, os plugins de tecnologia NPAPI (e isso inclui os plugins Adobe Flash e Sun Java) não irão funcionar em navegadores que usem tecnologia Aura. Como no novo Chromium a Google adotou o Aura, nem adianta tentar fazer o Sun Java funcionar (nem qualquer outro plugin de tecnologia NPAPI)... E se isso por um lado é bom para a segurança e o desempenho, por outro lado vai trazer alguns inconvenientes relacionados a compatibilidade e é claro que vamos todos sentir isso. Até porque há websites em que certos recursos só funcionam com um plugin NPAPI (como por enquanto ainda é o caso dos websites dos bancos, que só não requerem plugin NPAPI Java quando acessamos a partir de um dispositivo móvel do tipo smartphone ou tablet, que usam sistemas operacionais que não utilizam mais a tecnologia NPAPI).

Ao que parece, por enquanto esse problema só está ocorrendo com as versões mais recentes do Ubuntu, porque a Google por ora só está modificando seus navegadores de NPAPI para Aura na versão 14.04 do Ubuntu: no Debian Wheezy de 64 bits e no XUbuntu 12.04 de 32 bits, por exemplo, a Google continua mantendo o Chromium com a tecnologia NPAPI, e por isto continua sendo possível usar plugins NPAPI no Chromium. Isso pelo menos por enquanto...

Mas no Ubuntu 14.04 a Google já "atualizou" o Chromium para essa tecnologia "Aura", e ao que parece esse é um caminho sem volta... :'(
Yuri Sucupira ("Sampayu")

Renan Rischiotto

Olá Sampayu,

Gostei da notícia :)

Isso ocorre também com o Chrome?

lapc

Eu postei o problema no Fórum do Chromium e o administrador respondeu assim:

"NPAPI is not supported under Aura.
I am surprised you have an Aura build, I was under the impression that Chrome 35 will use Aura.
Oh, you use Chromium. Well, your distribution apparently chose to enable Aura on a stable release before Google did".

O negócio é aguardar!

Sampayu

Citação de: Renan Rischiotto online 22 de Abril de 2014, 07:04
Olá Sampayu,

Gostei da notícia :)

Isso ocorre também com o Chrome?

Por enquanto o Chrome continua aceitando plugins NPAPI, porém como o Chrome também é desenvolvido pela Google, acredito que seja questão de tempo até o Chrome também parar de suportar plugins NPAPI.
Yuri Sucupira ("Sampayu")

Sampayu

Citação de: lapc online 22 de Abril de 2014, 09:23
Eu postei o problema no Fórum do Chromium e o administrador respondeu assim:

"NPAPI is not supported under Aura.
I am surprised you have an Aura build, I was under the impression that Chrome 35 will use Aura.
Oh, you use Chromium. Well, your distribution apparently chose to enable Aura on a stable release before Google did".

O negócio é aguardar!

Sim, Aura é uma tecnologia que foi desenvolvida para que o navegador não necessite de plugins NPAPI (contanto que os desenvolvedores dos websites adaptem o código-fonte dos websites para suportarem a tecnologia Aura, ao invés de solicitarem um plugin NPAPI para o navegador). É aí que a "briga" vai ficar feia.

Mas a Google já se manifestou claramente: ela está desativando a tecnologia NPAPI em seus navegadores. E este aviso na página da Mozilla me deixou com a impressão de que num futuro não muito distante eles talvez também adotem a tecnologia Aura (ou alguma outra) e abandonem a tecnologia NPAPI.

Para quem está bem de domínio da língua inglesa, há esta página (ainda em construção) que já começa a discutir as mudanças que estão ocorrendo e apontar os possíveis rumos futuros, como por exemplo a tecnologia PPAPI.

Chad Miller, o principal mantenedor da Canonical para o navegador web Chromium do Ubuntu, enviou um e-mail informando que o desenvolvimento do Chromium no Ubuntu 14.04 está "emperrado" em uma situação bastante ruim, porque a Google está "assassinando" o velho NPAPI à medida que se livra das bibliotecas GTK2 para aderir ao toolkit Aura. Embora o NPAPI ainda seja popular em plugins como Adobe Flash e Sun Java, a Google espera estar com todo o GTK2 (e consequentemente o NPAPI) inteiramente excluído já na próxima grande atualização que a Google efetuar em seus navegadores. E isso poderá ocorrer dentro de algumas semanas.

Ainda de acordo com o Chad, o código-fonte do Chromium é bastante dinâmico, e por isto manter patches de correção e atualização para preservar o GTK2 e o NPAPI num navegador voltado para Aura seria inviável, na prática. Enfim: a Google está caminhando numa direção que "condena" os navegadores Chromium e Chrome a não serem mais compatíveis com a tecnologia NPAPI, e os mantenedores (como o Chad Miller) evidentemente não estão dispostos a ficar se desdobrando para manter versões "adaptadas" que sejam compatíveis com NPAPI.

Além da suposta vantagem da tecnologia Aura sobre a GTK2+NPAPI em termos de segurança e desempenho, esse movimento da Google em (muito) grande parte também decorre do fato de que o sistema ChromeOS usa a tecnologia Aura em sua interface gráfica, e a Google está querendo "padronizar" o uso de Aura em seus produtos, o que também facilitará para a Google o desenvolvimento e a integração do Chrome e do Chromium dentro do ChromeOS.
Yuri Sucupira ("Sampayu")

Renan Rischiotto

Por que o Chad Miller está preocupado com isso? Vai interferir no Ubuntu?

lapc

Mais uma vez obrigado, Sampayu, por suas excelentes respostas. Acho que a opção de trocar o npapi pelo Aura se deve à convergência chrome/chromeOS. Só nos resta cobrar dos bancos a adoção da tecnologia Aura. Parece-me que o Itau já a usa, pois acessei o banco pelo chromium sem problemas. O problema é o Banco do Brasil. Valeu!

Sampayu

Citação de: Renan Rischiotto online 22 de Abril de 2014, 14:07
Por que o Chad Miller está preocupado com isso? Vai interferir no Ubuntu?

Interferir no (desenvolvimento do) Ubuntu, não interfere não. A preocupação do Chad Miller é apenas alertar os usuários do Chromium no Ubuntu que daqui pra frente o Chromium não terá mais suporte a plugins NPAPI.

Como o Chad Miller é mantenedor do Chromium no Ubuntu, ele provavelmente é o cara que pega o código-fonte do Chromium (esse código-fonte é desenvolvido pela Google) e a partir desse código-fonte ele cria o pacote DEB, para que seja possível instalar o Chromium no Ubuntu. Porém, como daqui pra frente o código-fonte virá sem suporte a GTK2 e NPAPI (porque a Google removeu esse suporte do código-fonte), o pacote DEB de instalação do Chromium continuará a ser fornecido para o Ubuntu porém o navegador Chromium será instalado sem suporte aos plugins NPAPI.

É "só" isso, rs. :P
Yuri Sucupira ("Sampayu")

Sampayu

Citação de: lapc online 22 de Abril de 2014, 17:40
Mais uma vez obrigado, Sampayu, por suas excelentes respostas. Acho que a opção de trocar o npapi pelo Aura se deve à convergência chrome/chromeOS. Só nos resta cobrar dos bancos a adoção da tecnologia Aura. Parece-me que o Itau já a usa, pois acessei o banco pelo chromium sem problemas. O problema é o Banco do Brasil. Valeu!

Por nada, lapc. Seu primeiro post acabou sendo muito útil para todos nós, pois embora eu soubesse que a Google estava querendo se livrar da tecnologia NPAPI eu ainda não havia me deparado com uma versão estável de navegador sem ela. Foi a partir do seu primeiro post que eu acabei investigando mais a fundo e constatando que esse processo começou. :)
Yuri Sucupira ("Sampayu")

nogueira13

Yuri, parece que eu tenho dois java plugins instalado. Um que está no path /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libnpjp2.so, o 11.5.2 e no outro path /opt/java/jre/lib/amd64/libnpjp2.so o 10.55.2. Eu penso que em uma das atualizações automáticas do Ubuntu ele instalou o java-8-oracle. Tanto que quando vou na página do Java e peço para ele verificar o que está instalado ele acusa o 1.8.0_05. A propósito, qual eu deveria deixar? Estou conseguindo acessar a minha conta no Banco do Brasil, apesar de receber a mensagem que tem um plugin java mais atualizado.

DiogoFC

Oi. Eu não tenho problemas de Java para usar o Internet Banking do BB, mas já faz uns bons meses (talvez 2 anos) que não consigo usar meu certificado digital A3 na página deles. Você sabe alguma coisa sobre isso?

rodrigo.miguel

Citação de: Sampayu online 15 de Abril de 2014, 21:24
Citação de: JorgeThrasher online 04 de Abril de 2014, 15:38
Conheço um jeito bem mais fácil ...
Só instalar esses dois pacotes ...
sudo apt-get install openjdk-7-jre icedtea-plugin
...

Duas maneiras de "preparar Neston":

  • Instalar um JDK (não um JRE)... Na prática, embora você instale o JDK inteiro, o plugin vai usar apenas parte do JRE que existe dentro do JDK: o resto ficará inerte e sem uso, dentro do seu sistema.
...

Mas o openjdk-7-jre não é o JRE e o openjdk-7-jdk o JDK?

Sampayu

Citação de: nogueira13 online 25 de Abril de 2014, 15:32
Yuri, parece que eu tenho dois java plugins instalado. Um que está no path /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libnpjp2.so, o 11.5.2 e no outro path /opt/java/jre/lib/amd64/libnpjp2.so o 10.55.2. Eu penso que em uma das atualizações automáticas do Ubuntu ele instalou o java-8-oracle. Tanto que quando vou na página do Java e peço para ele verificar o que está instalado ele acusa o 1.8.0_05. A propósito, qual eu deveria deixar? Estou conseguindo acessar a minha conta no Banco do Brasil, apesar de receber a mensagem que tem um plugin java mais atualizado.

Oi, estava de férias. Agora estou de volta.

Este tópico ficou um tempão sem ninguém se manifestar, mas assim que eu saí de férias apareceram várias pessoas com vários comentários, rs. ;D A lei de Murphy é mesmo infalível. :P

Mas voltando ao fio da meada e respondendo sua pergunta: sim, você está com dois plugins (arquivos libnpjp2.so) instalados em seu sistema. Um realmente é da versão 7 do Sun Java e o outro realmente é da versão 8 do Sun Java.

Quando li que você mencionou o path /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libnpjp2.so eu logo passei a crer que você tenha manualmente instalado a versão 8 do Sun Java via repositório PPA do Webupd8team. Você instalou? Se foi esse o caso, basta desinstalar o Sun Java 8 do Webupd8team que o plugin do Sun Java 7 voltará a funcionar.

Caso você não tenha instalado o Sun Java 8 via PPA do Webupd8team, é possível que a sua distribuição Linux é que tenha instalado o Java 8 da Sun/Oracle durante alguma das últimas atualizações que você autorizou no sistema.

Aqui em casa, além de eu usar o XUbuntu 12.04 de 32 bits no meu PC velhão (Pentium D 3.4 GHz com 2 GB de RAM) eu também executo (na VirtualBox do meu Macbook) o Debian Wheezy de 64 bits e o Ubuntu 14.04 de 32 bits, mas em nenhuma dessas distribuições a atualização de software instalou o Sun Java 8. Por isto lhe pergunto: qual versão do Ubuntu de 64 bits você está usando aí?

Se eu tivesse que apostar, eu "chutaria" que você está usando o Ubuntu 13.10 de 64 bits: "64 bits" porque seus plugins estão em subpastas das pastas "amd64", e ".10" porque as versões do Ubuntu que terminam com .04 são "estáveis", ao passo que as que terminam com .10 trazem alguns softwares mais recentes que estão em desenvolvimento e que por isto podem apresentar algumas novidades vantajosas, mas que por outro lado podem também trazer algumas instabilidades. Como o release estável mais recente do Sun Java é a versão 7, não a 8, uma distribuição Linux a priori só irá utilizar o Sun Java 8 se essa distribuição for uma versão unstable ("instável") ou então uma versão testing ("em testes"). Inclusive, observando o que diz esta página da Oracle, o Java 8 ainda é uma versão de testes ("testing") e por isto o mais recomendável é que você desinstale o Java 8 e mantenha o Java 7 em seu sistema...

...a menos que você seja um beta tester e/ou um desenvolvedor Java e deseje utilizar a versão 8 para explorar novos recursos, ver o log de atualizações para saber quais bugs foram corrigidos na versão 8, e por aí vai. Caso contrário, o melhor é desinstalar mesmo o Java 8, por enquanto, e seguir somente com o Java 7.

O bacana é que tenha você instalado o Java 8 via repositório PPA do Webupd8team ou via repositório oficial da sua distribuição Linux, como em ambos os casos a instalação foi feita via pacote DEB, a desinstalação basicamente consistirá em usar o comando
sudo apt-get remove nome_do_pacote.deb
para remover esse Sun Java 8. Só resta saber qual é o nome_do_pacote. Isso eu não sei porque nenhuma das distros que eu uso estão com o Sun Java 8, mas você pode abrir um gerenciador de pacotes (como por exemplo o Synaptic) e daí investigar quais são todos os pacotes instalados que têm "java" no nome. Um deles será o JRE versão 8 da Sun/Oracle. ;)
Yuri Sucupira ("Sampayu")

Sampayu

Citação de: DiogoFC online 26 de Abril de 2014, 22:23
Oi. Eu não tenho problemas de Java para usar o Internet Banking do BB, mas já faz uns bons meses (talvez 2 anos) que não consigo usar meu certificado digital A3 na página deles. Você sabe alguma coisa sobre isso?

De antemão informo saber bem pouco sobre certificados digitais e não possuo nenhum certificado digital. Mas, tentando ajudá-lo um pouco (embora não necessariamente conseguindo, rs ;D), eis algumas sugestões que você pode querer tentar:

1) Caso o seu certificado não esteja funcionando em lugar nenhum, pode ser necessário instalar um driver no seu sistema Linux para fazer esse certificado ser aceito. No sistemas Windows, esse driver costuma estar "dentro" de um arquivo de biblioteca de link dinâmico (extensão .DLL, de dynamic-link library). Já nos sistemas Linux, esse driver costuma estar "dentro" de um arquivo de biblioteca de objeto compartilhado vinculado dinamicamente (dynamically linked shared object libraries), ou seja, dentro de um arquivo com extensão .SO (de Shared Object). Esse driver só pode ser fornecido pela empresa que desenvolveu (não necessariamente a que vendeu) o certificado A3 para você.

2) Caso o seu certificado só não esteja funcionando com o Banco do Brasil (mas esteja funcionando em outros lugares), o driver não é necessário e neste caso o problema pode estar ou na configuração do Java usado no website do Banco do Brasil ou então no navegador. Neste caso eu primeiro tentaria importar esse certificado. Acesse o painel de controle Java com este comando no terminal do shell do Linux:
jcontrol&
...ou use o comando com o caminho completo (caso você tenha em seu sistema algum outro programa com o nome jcontrol e o seu Sun Java esteja instalado em /opt/java/jre, que é o que este tutorial ensina):
/opt/java/jre/bin/jcontrol&

...daí vá em Segurança, clique em Gerenciar Certificados..., selecione o seu tipo de certificado, clique na aba Usuário, clique no botão Importar, selecione seu arquivo de certificado e clique em Abrir. Se o arquivo do seu certificado estiver em um formato que o Painel de Controle Java reconhece, o certificado será importado e daí toda vez que o seu navegador executar o plugin do Sun Java para rodar um applet em alguma página web (como por exemplo um teclado virtual na página do Banco do Brasil, ou algum outro conteúdo java carregado numa página web do Banco do Brasil), o Java automaticamente fornecerá esse seu certificado, caso o applet do website solicite.

Se o acima exposto não funcionar e no passado você conseguia usar seu certificado no website do BB, o problema pode estar no applet java utilizado pelo BB. Neste caso, eu entraria em contato com o Banco do Brasil para reportar o problema e solicitar que a equipe de T.I. do banco atualize o applet do website do banco.

Outra possibilidade pode ser você tentar importar seu certificado diretamente para dentro do seu navegador, de modo que quando o website solicitar suas credenciais elas sejam automaticamente fornecidas pelo seu navegador. No caso do Google Chrome, por exemplo, basta acessar chrome://settings/certificates e importar o certificado na guia "Seus certificados".
Yuri Sucupira ("Sampayu")

Sampayu

Citação de: rodrigo.miguel online 26 de Abril de 2014, 22:50
Citação de: Sampayu online 15 de Abril de 2014, 21:24
Citação de: JorgeThrasher online 04 de Abril de 2014, 15:38
Conheço um jeito bem mais fácil ...
Só instalar esses dois pacotes ...
sudo apt-get install openjdk-7-jre icedtea-plugin
...

Duas maneiras de "preparar Neston":

  • Instalar um JDK (não um JRE)... Na prática, embora você instale o JDK inteiro, o plugin vai usar apenas parte do JRE que existe dentro do JDK: o resto ficará inerte e sem uso, dentro do seu sistema.
...

Mas o openjdk-7-jre não é o JRE e o openjdk-7-jdk o JDK?


  • Nota preliminar para os que porventura não saibam o que é JDK e JRE: JDK (Java Development Kit / Kit de Desenvolvimento Java) é o kit de ferramentas que os desenvolvedores utilizam para criar programas em linguagem java, ao passo que JRE (Java Runtime Environment / Ambiente de Execução Java) é um ambiente de software dentro do qual existe a JVM (Java Virtual Machine / Máquina Virtual Java). É a JVM que executa (dentro dela) os programas escritos em java (e os programas escritos em java só podem ser executados dentro de uma JVM).

    Assim sendo, o usuário comum precisa apenas do JRE, já que o usuário comum irá apenas executar conteúdo java que já foi criado por algum desenvolvedor. É o caso de quem acessa o website do Banco do Brasil: o cliente só quer acessar seu internet banking, então o JRE (que, além de possuir a JVM, possui também o plugin e outras coisas) será suficiente para esse cliente conseguir utilizar o website do banco. Mas o profissional que desenvolveu (em java) o teclado virtual do banco, por exemplo, vai precisar do JDK, se ele quiser aprimorar esse teclado virtual (desenvolver uma versão mais nova, mais segura, mais rápida, mais estável etc.).

    Como depois de criar o programa java o desenvolvedor precisa testar se esse programa está funcionando, os JDK geralmente já vêm com um JRE dentro, para o desenvolvedor testar se um usuário comum usando somente o JRE conseguirá de fato executar esse programa que o desenvolvedor criou. ;)

Apresentado esse esclarecimento preliminar, agora posso responder à pergunta do rodrigo.miguel: sim, sim, rodrigo, você tem razão e a sua observação está correta. :) Quando eu escrevi "Instalar um JDK (não um JRE) de código aberto, como é o caso do OpenJDK", eu usei a palavra "JDK" no seu sentido convencional, ou seja, já considerando que no JDK virá um JRE dentro e por isto instalar o JDK será suficiente para se ter junto um JRE. Mas o exemplo que eu apresentei em seguida foi ruim porque eu usei o OpenJDK como exemplo e o OpenJDK separa o JDK e o JRE em pacotes distintos. ;D

Mudando o tema sem sair do assunto, um problema que ocorre é que muitas distribuições (como é o caso do XUbuntu 12.04 de 32 bits, por exemplo, que eu uso aqui no meu "PC velhão") já vêm com ambos os pacotes instalados: o do JDK e o do JRE. No entanto, se a pessoa não desenvolve nada em Java, é desnecessário ela deixar o pacote JDK instalado, pois no caso do OpenJDK o pacote JDK não vem com um JRE dentro: o JRE já está instalado à parte, no pacote específico do JRE.

Mesmo assim, muitos (eu diria que a maioria dos usuários) deixam o pacote JDK instalado, e se a gente for procurar no Google vai ver que muitos tutoriais (como este, só para citar um exemplo) dizem para os usuários instalarem tudo - e daí eles instalam mesmo. :P

O curioso é que o projeto de desenvolvimento do OpenJDK também é da Oracle: mesma empresa que desenvolve e atualiza o "Sun Java". No entanto, ainda há websites que não funcionam direito (ou não funcionam absolutamente) com o JRE do OpenJDK: apenas com o JRE do "Sun Java". :P
Yuri Sucupira ("Sampayu")