Traducción(es): English - español
NOTA:
Debian recomienda el uso de paquetes OpenJDK (openjdk-7-jdk / openjdk-7-jre) en vez de los paquetes no libres creados por esta utilidad.
java-package provee la capacidad de construir un paquete Debian desde una distribución binaria Java mediante la ejecución de make-jpkg <fichero de archivo binario java> (con ficheros de archivo descargados desde los proveedores abajo listados). Caso que tu interés fuera más por el desarrollo de Java bajo Debian, entonces sigue el enlace es/Java. Para aprender más sobre el empaquetamiento de programas escritos en Java y librerías para Debian, véase es/Teams/JavaPackaging.
El paquete incluye la orden make-jpkg para hacer esto. El uso típico consiste en:
- descargar uno de los archivos binarios de java listados abajo
- invocar make-jpkg para construir un paquete Debian desde el archivo descargado
- instalar el paquete generado
Las distribuciones binarias de Java que se soportan actualmente incluyen:
Oracle (http://www.oracle.com/technetwork/java/javase/downloads):
- El Kit de Desarrollo Java (JDK), versión 6, 7 y 8
- El Entorno de Ejecución Java (JRE), versión 6, 7 y 8
- Los Java API Javadoc, versión 6, 7 y 8
Proceso
Añade un componente "contrib" en /etc/apt/sources.list, por ejemplo:
# Debian 8 "Jessie" deb http://httpredir.debian.org/debian/ jessie main contrib
Actualiza la lista de paquetes disponibles e instalar el paquete java-package :
# apt-get update && apt-get install java-package && exit
Descarga la distribución binaria Java JDK/JRE deseada (Oracle). Escoge archivos tar.gz o archivos autoextraíbles, noelijas el RPM!
Usa java-package para crear un paquete Debian, por ejemplo:
$ make-jpkg jdk-8u51-linux-x64.tar.gz
Instala el paquete binario creado:
$ su # dpkg -i oracle-java8-jdk_8u51_amd64.deb
Configuración
Por defecto las DebianAlternatives instalarán automáticamente la mejor versión de Java como la versión principal. Si los enlaces symlinks se han construido manualmente, quedarán preservados por las herramientas. Las herramientas update-alternatives intentarán duramente respetar la configuración explícita del administrador local. Local manual symlinks locales manuales aparentan ser configuración explícita. De modo que se restablezcan los symlinks alternativos a sus valores por defecto usa la opción --auto .
# update-alternatives --auto java
Si quisieras sobrescribir lo básico para quizá usar una versión específica entonces usa --config y selecciona manualmente la versión deseada.
# update-alternatives --display java # update-alternatives --config java
Escoge el numero apropiado de la alternativa deseada.
El binario apropiado de java estará automáticamente en el PATH por virtud del symlink alternativo /usr/bin/java .
puedes usar la herramienta update-alternatives del paquete java-common que te deja actualizar todas las alternativas pertenecientes a un kit runtime/development cada vez.
# update-java-alternatives -l # update-java-alternatives -s jdk-8-oracle-x64
Solución de problemas
El proceso de construcción sigue cascando en el objetivo override_dh_shlibdeps
Este problema se debe a que hay dependencias incumplidas del paquete java-package (problema relacionado: 782132). Para arreglarlo simplemente ejecuta como root:
# apt-get install libgl1-mesa-glx libfontconfig1 libxslt1.1 libxtst6 libxxf86vm1 libgtk2.0-0
Construir Oracle Java 6 Desde jdk-6u45-linux-x64.bin
El Objetivo que falla es override_dh_shlibdeps igual que arriba
Las versiones 0.56 y 0.61 de java-package ambas tienen
Build-Depends: debhelper (>= 9), libasound2, libgl1-mesa-glx, libgtk2.0-0, libxslt1.1, libxtst6, libxxf86vm1
pero omiten libxt6
libfontconfig1 de arriba no es requisito
- La construcción requiere:
# apt-get install libgl1-mesa-glx libgtk2.0-0 libxslt1.1 libxtst6 libxxf86vm1 libxt6
Construir Oracle Java 8 en wheezy
En ejecutando make-jpkg en wheezy (i686) puedes obtener este mensaje:
notroot@debian:~$ fakeroot make-jpkg /home/notroot/jdk-8u101-linux-i586.tar.gz Creating temporary directory: /tmp/make-jpkg.dUA0X8ychf Loading plugins: /usr/share/java-package/common.sh /usr/share/java-package/j2re.sh /usr/share/java-package/j2sdk-doc.sh /usr/share/java-package/j2sdk.sh /usr/share/java-package/j2se.sh /usr/share/java-package/oracle-j2re.sh /usr/share/java-package/oracle-j2sdk-doc.sh /usr/share/java-package/oracle-j2sdk.sh Detected Debian build architecture: i386 Detected Debian GNU type: i486-linux-gnu No matching plugin was found. Removing temporary directory: done
Esto puede arreglarse instalando las versiones backports del java-package. apt-get install -t wheezy-backports java-package instala el paquete si los backports están correctamente configurados. (idea basada en bug #750092)