Generar paquetes deb para instalar Java en Ubuntu

por | marzo 18, 2015

Actualmente en los repositorios de Ubuntu/Debian, la versión para el JDK o el JRE es OpenJDK, la versión Open Source que tomó fuerza luego de que Oracle comprara a Sun, estos paquetes son lo suficientemente buenos para cualquier desarrollador Java, el problema es que están un poco desfasados y no se actualizan con tanta premura. Existe la posibilidad de instalarlos mediante los PPA disponibles, existe mucha información acerca de como agregarlos e instalarlos.

Esta vez les muestro un mecanismo un tanto distinto, bajar el instalador de la página de Oracle y transformarlos a paquetes deb.

El paquete que hace la magia es JavaPackage, está en los repos de Debian pero no en los de Ubuntu, así que eso es lo que vamos a hacer.

Instalar JavaPackage

Agregamos a nuestro /etc/apt/sources.list el repo debian:

# Debian 7 "Wheezy"
deb http://http.debian.net/debian/ wheezy main contri

Al hacer apt-get update nos saldrá un error de clave:

W: Error de GPG: [PAQUETE] Las firmas siguientes no se pudieron verificar
porque su llave pública no está disponible:
NO_PUBKEY [CLAVE] NO_PUBKEY [CLAVE]

Que se corrige con el siguiente comando

gpg --keyserver keyserver.ubuntu.com --recv [CLAVE]
gpg --export --armor [CLAVE] | sudo apt-key add -

Reemplazando [CLAVE] por nuestros datos. Nuevamente actualizamos e instalamos:

sudo apt-get update
sudo apt-get install java-package

Usando JavaPackage

De la página de Oracle por ejemplo hemos descargado el siguiente archivo:

jdk8

Archivo jdk 8 descargado de la página de Oracle

 

Por lo tanto, el comando para generar el paquete deb será:

make-jpkg jdk-8u40-linux-i586.tar.gz

Tendremos que responder afirmativamente a algunas preguntas como la arquitectura, el sistema operativo y al final tendremos nuestro deb listo para instalar.

Paquete deb generado por la herramiente JavaPackage

Paquete deb generado por la herramiente JavaPackage

Si tenemos instalado en nuestro sistema el programa GDebi podemos instalar el JDK 8 simplemente dando doble clic sobre el paquete deb. Sino con este comando en el terminal ubicados donde esté el paquete deb.

sudo dpkg -i oracle-java8-jdk_8u40_i386.deb

Configurando

Finalmente podemos usar el comando update-alternatives para poder escoger el jdk que va a estar configurado para el sistema si es que tenemos mas de una versión instalada:

 sudo update-alternatives --config java

Y nos mostrará nuestros jdk’s instalados:

Selección   Ruta                                           Prioridad  Estado
------------------------------------------------------------
  0         /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      modo automático
* 1         /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      modo manual
  2         /usr/lib/jvm/jdk-7-oracle-i586/jre/bin/java     317       modo manual
  3         /usr/lib/jvm/jdk-8-oracle-i586/jre/bin/java     318       modo manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 

Como pueden ver, usando el número de selección se puede escoger el jkd deseado

También se puede dejar en manos de la herramienta que escoja el “mejor” java

sudo update-alternatives --auto java

El tener nuestros paquetes instalados directamente de los repositorios es una gran ventaja frente a este mecanismo, pero en algunos casos(como en el mío) no siempre tenemos acceso a todo lo que queramos y tenemos que “acomodarnos” a ciertas limitantes.

Espero sea de utilidad

Fuente: https://wiki.debian.org/JavaPackage

EOF