Compilando OpenJDK e IcedTea no Slackware usando SlackBuild de AlienBOB

Publicado por Luís Fernando C. Cavalheiro em 22/11/2013

[ Hits: 5.918 ]

Blog: https://github.com/lcavalheiro/

 


Compilando OpenJDK e IcedTea no Slackware usando SlackBuild de AlienBOB



Pessoas e não-pessoas aqui do VOL, aqui começa mais uma dica do Dino, trazendo informações tão novas quanto a bisavó de Ada Lovelace para os senhores.

Hoje, nós vamos começar uma série de dicas que visam instalar coisas legais no seu Slackware Current (se você não usa Slackware, "GET SLACK OR DIE!"). A primeira do dia, é o OpenJDK e o IcedTea.

Para quem não sabe, esses dois brinquedinhos aí são implementações Open Source do kit de desenvolvimento de software (SDK, da sigla em inglês) e o plugin para Internet do Java. Nós poderíamos instalar o Oracle JDK e seu plugin, mas nunca confie em uma empresa que libera um programa com quase cinquenta vulnerabilidades (pelo menos na versão 7u45).

Mas aí começa a graça, nem o OpenJDK e IcedTea estão disponíveis nos mirrors oficiais do Slackware, nem no slackbuilds.org.

Fica a pergunta: como fazer? Para quem não sabe, Eric Hameleers, mais conhecido como AlienBOB, tem um mirror próprio cheio de SlackBuilds legais, o Slackware packages made by Alien.

Nós vamos instalar o OpenJDK e o IcedTea daqui, pegando os SlackBuilds do grande AlienBOB e então, compilando localmente a bagaça.

* Atenção: usuários do Slack 64 Current devem habilitar o Multilib antes de usarem esta dica, veja mais informações em:

Instalação

Primeiro passo: "blacklistar" os pacotes criados por SlackBuilds de AlienBOB.

Quem habilitou o Multilib seguindo o artigo, já fez isso. Mas usuários do Slack 32 ou pessoas que insistem em não seguir as dicas conforme elas foram escritas, precisarão adicionar a linha:
[0-9]+alien
...ao final do arquivo /etc/slackpkg/blacklist. O comando:

# echo "[0-9]+alien" >> /etc/slackpkg/blacklist

...dá conta do recado. Aproveite e blackliste os pacotes que os SlackBuilds de slackbuilds.org criam com o comando:

# echo "[0-9]+SBo" >> /etc/slackpkg/blacklist


Segundo passo: instalar as dependências.

Como usaremos SlackBuilds, todo o trabalho deve ser feito como root. Sendo assim, assuma o comando pleno do computador com:

su -

* Lembrando-se, é claro, de oferecer uma pitada em seu cachimbo favorito ao grande "Bob" Dobbs antes. Normalmente, você estará no $Home do root, do contrário, o comando:

# cd ~

...resolve sua vida. Agora, rode:

# mkdir slackbuilds
# mkdir apache-ant rhino xalan xerces


...para criar os diretórios de trabalho. Agora, rode:

# for i in apache-ant rhino xalan xerces ; do cd "$i" ; lftp -c 'open http://www.slackware.com ; cd ~alien/slackbuilds/"$i" ; mirror build' ; cd build ; chmod +x "$i".SlackBuild ; ./"$i".SlackBuild ; installpkg /tmp/"$i"*.t?z ; done

...para automatizar o processo de instalação das dependências.


Terceiro passo: instalar o OpenJDK.

Primeiro, crie o diretório de trabalho com o comando:

# mkdir ~/slackbuilds/openjdk

Após isso, vá para ele com o comando:

# cd ~/slackbuilds/openjdk

Agora, rode o comando:

# lftp -c "open http://www.slackware.com ; cd ~alien/slackbuilds/openjdk ; mirror build" && cd build && chmod +x openjdk.SlackBuild

...para baixar tudo que necessitaremos, para nos aproximarmos mais um passo do sonho de Stallman.

Momento macet: normalmente, o Dino aqui é contra ensinar o pulo do gato de bandeja, mas desta vez, vou abrir uma exceção porque eu mesmo demorei muito para entender qual era meu erro aqui.

Para compilar o OpenJDK no Slackware, é preciso usar o algoritmo de ordenação alfabética C, que é velho pra cacete, mas por alguma razão, ainda é muito usado por aí. Então, o comando ficará:

# export LANG=C && export LC_ALL=C && BOOTSTRAP=YES ./openjdk.SlackBuild

Ao final, você terá criado dois pacotes: um com o OpenJDK e outro com o OpenJRE. Ignore o OpenJRE, porque nenhum dos dois tem o plugin para Internet mesmo e você precisará do OpenJDK para compilar o plugin.

Instale o pacote correto com o comando:

# installpkg /tmp/openjdk*t?z

E aguarde o final do processo de instalação. Não feche o terminal, pois ainda precisaremos dos exports configurados agora há pouco.


Quarto passo: instalar o IcedTea.

Rode os comandos:

# mkdir ~/slackbuilds/icedtea
# cd ~/slackbuilds/icedtea
# lftp -c "open http://www.slackware.com ; cd ~alien/slackbuilds/icedtea-web ; mirror build"
# cd build
# chmod +x icedtea-web.SlackBuild
# ./icedtea-web.SlackBuild
# installpkg /tmp/icedtea*t?z


Instalar o plugin sem dores de cabeça.


Quinto passo: limpar a casa e verificar a correção do processo.

Depois das instalações todas, rode os comandos:

# rm -rf ~/slackbuilds
# rm -rf /tmp/iced* /tmp/openj* /tmp/*t?z*


...para dar uma moral pro seu HD. Se tudo correu bem (e é claro que correu bem, você usa Slackware!), você pode abrir a página de plugins de seu Firefox e ver uma informação bonitinha que nem a da imagem abaixo:
Linux: Compilando OpenJDK e IcedTea no Slackware usando SlackBuild de AlienBOB

Conclusão

E é com isso que eu encerro esta dica do mal para os senhores.

Eu aqui, no meu velho e querido Dell Inspiron (que finalmente se livrou do Debian e agora virou um puro Slack 64), vocês aí afastados da iluminação dos subgênios, porque a caralha é nossa, e muito nossa!

Outras dicas deste autor

Telegram Desktop parou de funcionar após atualização ou troca de idioma? Corrija isso já!

MAME no Ubuntu 12.04 - Instalação com GNOME Video Arcade front-end

Desabilitando o UEFI e o Secure Boot na BIOS

Recuperando inicialização do Slackware após atualização do kernel via slackpkg

Slackware64: multilib for dummies (usando slackpkg+)

Leitura recomendada

Acessos em Java: private, protected e public

Exibir ponto em expressão regular (regex)

Banco do Brasil com Java nativo no Firefox/Iceweasel - Instalação no Debian

Concatenando String de Forma Eficiente em Java

Java 6 no Linux Debian 4.0 Etch

  

Comentários
[1] Comentário enviado por lcavalheiro em 22/01/2014 - 22:59h

Atualização da dica:

Com o advento da versão 7u51 é preciso instalar antes o Oracle JDK (procurar em slackbuilds.org) para compilar o OpenJDK, o BOOTSTRAP não funciona mais.

[2] Comentário enviado por moisespedro em 25/01/2014 - 03:26h

Tava tudo indo bem ate que:
"# Running javac:
/tmp/icedtea-2.4.4/bootstrap/jdk1.6.0/bin/javac -J-XX:ThreadStackSize=1664 -J-XX:-PrintVMOptions -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-Xmx512m -J-Xms512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -g -source 7 -target 7 -encoding ascii -Xbootclasspath:/tmp/icedtea-2.4.4/openjdk.build-boot/classes -sourcepath /tmp/icedtea-2.4.4/generated.build:../../../../src/solaris/classes:../../../../src/share/classes -bootclasspath /tmp/icedtea-2.4.4/openjdk.build-boot/classes:/tmp/icedtea-2.4.4/bootstrap/jdk1.6.0/jre/lib/rt.jar -d /tmp/icedtea-2.4.4/openjdk.build-boot/classes @/tmp/icedtea-2.4.4/openjdk.build-boot/tmp/sun/sun.security.other/.classes.list
Annotation processing got disabled, since it requires a 1.6 compliant JVM
----------
1. ERROR in ../../../../src/share/classes/sun/security/ssl/RSAClientKeyExchange.java (at line 274)
} catch (InvalidAlgorithmParameterException |
^
Syntax error on token "|", . expected
----------
----------
2. ERROR in ../../../../src/share/classes/sun/security/ssl/Handshaker.java (at line 1054)
} catch (InvalidAlgorithmParameterException |
^
Syntax error on token "|", . expected
----------
2 problems (2 errors)make[6]: *** [.compile.classlist] Error 255
make[6]: Leaving directory `/tmp/icedtea-2.4.4/openjdk-boot/jdk/make/sun/security/other'
make[5]: *** [all] Error 1
make[5]: Leaving directory `/tmp/icedtea-2.4.4/openjdk-boot/jdk/make/sun/security'
make[4]: *** [all] Error 1
make[4]: Leaving directory `/tmp/icedtea-2.4.4/openjdk-boot/jdk/make/sun'
make[3]: *** [all] Error 1
make[3]: Leaving directory `/tmp/icedtea-2.4.4/openjdk-boot/jdk/make'
make[2]: *** [jdk-build] Error 2
make[2]: Leaving directory `/tmp/icedtea-2.4.4/openjdk-boot'
make[1]: *** [build_product_image] Error 2
make[1]: Leaving directory `/tmp/icedtea-2.4.4/openjdk-boot'
make: *** [stamps/icedtea-boot.stamp] Error 2
"

Alguma ideia?

[3] Comentário enviado por moisespedro em 25/01/2014 - 04:26h

Instalei o binario do openjdk e compilei o icedtea, sera que tem problema?

[4] Comentário enviado por lcavalheiro em 25/01/2014 - 09:56h


[3] Comentário enviado por moisespedro em 25/01/2014 - 04:26h:

Instalei o binario do openjdk e compilei o icedtea, sera que tem problema?


Não tem problema. O BOOTSTRAP de AlienBOB parece não funcionar pro Java 7u51, eu resolvi instalando o Oracle Java pra compilar o OpenJDK. Mas sua solução também serve ;-)

[5] Comentário enviado por lcavalheiro em 30/07/2014 - 17:30h

Atualização da dica: o bootstrap voltou a funcionar!

[6] Comentário enviado por danielcrvg em 14/11/2014 - 22:00h

Ola professor tem como atualizar o comando:

for i in apache-ant rhino xalan xerces ; do cd "$i" ; lftp -c 'open http://www.slackware.com ; cd ~alien/slackbuilds/"$i" ; mirror build' ; cd build ; chmod +x "$i".SlackBuild ; ./"$i".SlackBuild ; installpkg /tmp/"$i"*.t?z ; done


Ta dando 404 pra todos os arquivos..

cd: Access failed: 404 Not Found (~alien/slackbuilds/$i)
mirror: Access failed: 404 Not Found (/build)



[7] Comentário enviado por leoCCB em 09/11/2015 - 00:06h


[6] Comentário enviado por danielcrvg em 14/11/2014 - 22:00h

Ola professor tem como atualizar o comando:

for i in apache-ant rhino xalan xerces ; do cd "$i" ; lftp -c 'open http://www.slackware.com ; cd ~alien/slackbuilds/"$i" ; mirror build' ; cd build ; chmod +x "$i".SlackBuild ; ./"$i".SlackBuild ; installpkg /tmp/"$i"*.t?z ; done


Ta dando 404 pra todos os arquivos..

cd: Access failed: 404 Not Found (~alien/slackbuilds/$i)
mirror: Access failed: 404 Not Found (/build)




Primeiramente, agradecer ao grande Cavalheiro por mais esse presente. Segundo esclarecer que para mim também deu esse erro 404. Aí, olhando no http://www.slackware.com/~alien/slackbuilds/ percebi que eram aspas duplas e trocando no comando funcionou.




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts