Me gustaría actualizar mi sistema principal a 16.04, pero trabajo en proyectos que requieren OpenJDK 7.
Aparentemente no está disponible desde un trivial apt-get install openjdk-7-jdk
. Solo las versiones 8 y 9 se enumeran en el repositorio.
¿Alguien puede indicarme instrucciones sobre cómo instalarlo?
Respuestas:
ACTUALIZACIÓN: AUNQUE ESTA ES LA RESPUESTA MÁS VOTADA, PROBABLEMENTE NO ES LA QUE USTED QUIERE UTILIZAR EN 2018 POR FALTA DE ACTUALIZACIONES DE SEGURIDAD POR ESTA PPA.
Encontré las siguientes instrucciones que me funcionaron:
Esto define el "PPA para cargas de OpenJDK (restringido)" como un repositorio de paquetes adicional, actualiza su información e instala el paquete con sus dependencias (desde ese repositorio).
fuente
sudo update-java-alternatives
para que pueda hacer que openjdk-7 sea el predeterminado.Editar 22-jul-2019 : esta respuesta actualmente no funciona. Los paquetes JDK a los que se hace referencia a continuación ya no están disponibles en Debian Experimental. En cualquier caso, se quedaron atrás de los paquetes de Ubuntu Trusty que contenían actualizaciones de seguridad más recientes. Consulte las otras respuestas hasta que esto se pueda resolver (lo siento, no hay ETA).
No parece que el responsable del mantenimiento de openjdk-r / ppa esté actualizando el paquete openjdk-7 más allá de la versión 7u95-2.6.4-3. Sin embargo, la descripción de ese paquete "Copiado de Debian experimental en el Archivo primario para Debian GNU / Linux" nos da una pista sobre cómo manejar esto nosotros mismos.
Opción 1: instalación manual
Descargue los paquetes destinados a su arquitectura:
(para la mayoría de los usuarios, esto significa amd64 si 64 bits o i386 si está instalado Ubuntu de 32 bits)
(Intente) instalar los paquetes usando
dpkg
:Ubuntu 17.10 y anterior:
Ubuntu 18.04 y posterior:
Verifique la salida de
dpkg
. Si hubo problemas de dependencia, lo cual es probable, verá lo siguiente (con su arquitectura sustituida por amd64):Si no hubo problemas de dependencia, genial, ya está, pase al # 4. De lo contrario, si necesita resolver algunos problemas de dependencia, esto se maneja con:
Tenga en cuenta que no es necesario volver a ejecutar
dpkg
después de permitirapt
resolver las dependencias. Terminará automáticamente la instalación de los paquetes openjdk.Actualiza las alternativas de Java. Puede ver todas las versiones de Java instaladas con
update-java-alternatives --list
. Para activar OpenJDK Java 1.7, ejecute:Puede notar un error acerca de que el
IcedTeaPlugin.so
complemento no está disponible. Esto no es una preocupación real para los desarrolladores que trabajan con el JDK.Verifique que Java esté funcionando:
que debería generar algo similar a:
Opción 2: Instalación automática (incluidas actualizaciones con
apt
)La fijación se puede utilizar para instalar y actualizar openjdk-7-jdk y sus dependencias de los repositorios de Debian.
Cree un archivo de fijación que le indique
apt
que solo tenga en cuenta los paquetes que nos interesan (ciertamente no queremos que toda nuestra distribución de Ubuntu se "actualice" con los paquetes experimentales de Debian).Cree un archivo
/etc/apt/preferences.d/debian
con los siguientes contenidos. Que necesita privilegios de superusuario, por lo que utiliza uno desudo vim
,sudo nano
,gksudo gedit
, etc.Para Ubuntu 17.10 y versiones anteriores, también agregue lo siguiente (y vea la nota en la parte inferior):
Instale el llavero de Debian:
Nota: si bien este es el método más simple para agregar el conjunto de claves de Debian, es posible que no esté actualizado. Verifique resultados como los siguientes cuando se ejecuta
apt update
en el paso 4:Si ve este error, agregue manualmente las claves necesarias con:
dónde
8B48AD6246925553
y7638D0442B90D010
deben coincidir con los pubkeys que ves en el mensaje de advertencia.Agregue los repositorios necesarios:
¿Por qué no utilizar un repositorio estable de Debian? Te encontrarás con dependencias insatisfactorias con Debian estable. Los repositorios experimentales (para openjdk-7) y sid (para libjpeg62-turbo, libfontconfig1 y fontconfig-config) son más indulgentes con las versiones de dependencia.
Actualice el
apt
caché (espere que esto tome un tiempo ya que las listas de paquetes de Debian son grandes):Instale openjdk-7-jdk:
Actualiza las alternativas de Java. Puede ver todas las versiones de Java instaladas con
update-java-alternatives --list
. Para activar OpenJDK Java 1.7, ejecute:Puede notar un error acerca de que el
IcedTeaPlugin.so
complemento no está disponible. Esto no es una preocupación real para los desarrolladores que trabajan con el JDK.Verifique que Java esté funcionando:
que debería generar algo similar a:
notas de fontconfig
libfontconfig1
yfontconfig-config
debe actualizarse a 2.12 o posterior en Ubuntu 17.10 y versiones anteriores. Los paquetes de actualización de Debian no contienen las personalizaciones de Ubuntu, por lo que algunas aplicaciones muestran fuentes feas con estos paquetes instalados; por ejemplo, Proxy de depuración web de Charles. Dependiendo de los programas que use, puede verse afectado o no por este problema.fuente
Puede descargar un OpenJDK 7 de Azul que se ajuste a sus necesidades. Ambos tienen un DEB (para el sistema de paquetes) y una distribución ZIP. Solo he trabajado con la distribución ZIP.
http://www.azul.com/downloads/zulu/zulu-linux/
fuente
Instalar Java 7 en Ubuntu 16.04, Ubuntu 17.04
Se recomienda instalar Oracle Java , porque tiene una ventaja de rendimiento sobre OpenJDK . Por esa razón quiero publicar una alternativa. Si desea instalar Oracle Java, ejecute los siguientes comandos en la terminal para instalarlo desde PPA.
Agregue los repositorios necesarios:
Actualice el
apt
caché e instale oracle-java7 :Durante el proceso de instalación, deberá aceptar el acuerdo de licencia de Oracle . Una vez instalado, necesitamos establecer variables de entorno Java como JAVA_HOME
Corregir variables de entorno Java.
Verifique que Java esté funcionando:
que debería generar algo similar a:
fuente
apt-get
está tratando de obtener el instalador de una página no existente. - Si necesita JDK 7, puede descargar instaladores desde el sitio web de Archive: oracle.com/technetwork/java/javase/downloads/…Alternativa de Oracle JDK:
Quería evitar el esfuerzo con los repositorios porque cambio entre 7, 8 y 9, así que terminé con Oracle JDK en lugar de OpenJDK. Descargado desde el sitio oficial . No estoy seguro de si la última compilación 80 contiene las mismas correcciones que la compilación 161. de OpenJDK, pero la tengo para el desarrollo, de modo que eso no significa mucho para mí.
Luego debe configurar
$JAVA_HOME
el entorno para que varios scripts recojan el JDK correcto (por ejemplo, Maven, JBoss, etc.).Para completar, JDK versión 7 fue EOL'ed, incluso el soporte público de JDK 8 se cancelará desde septiembre de 2017 y no recibirá actualizaciones públicas después de septiembre de 2018.
fuente
Use contenedores
Esta es una respuesta universalmente válida sobre cómo ejecutar el
<outdated>
software eliminado en<current>
Ubuntu: contener su aplicación en contenedores .Por ejemplo, use Docker y una imagen base de Ubuntu anterior en la que el software que está buscando todavía está disponible / mantenido.
También funciona al revés; pruebe el software en una distribución Linux más nueva o incluso en otra en su Ubuntu estable actualmente en ejecución.
Ejemplo para Java 7 usando Ubuntu 14.04
Instalar Docker: la versión gratuita de Docker CE está bien. Consulte, por ejemplo, https://docs.docker.com/install/linux/docker-ce/ubuntu/ o use el
docker.io
paquete en las últimas versiones de Ubuntu enviadas.En una carpeta vacía, cree un archivo
Dockerfile
:Agregue más paquetes en ese comando si lo necesita.
En esa carpeta, ejecute:
Ejecute un comando dentro de un contenedor de un solo uso utilizando esa imagen de Java 7:
Por ejemplo
java -version
:Salida:
Opcionalmente, cree una envoltura para mayor comodidad.
Crea un archivo
/usr/local/bin/java7-in-docker
con contenido:Esto hará que el directorio de trabajo actual esté disponible dentro del contenedor, no todo su sistema de archivos, y suplantará su cuenta de usuario local en el espacio de nombres del contenedor.
Marcarlo como ejecutable:
Ejecute su Java 7 de forma transparente, así:
fuente
Una manera fácil es:
Agregue estas líneas a
/etc/apt/sources.list
:Luego actualice apt e instálelo. Probablemente necesitará degradar el
tzdata
paquete.Después de eso, recomendaría comentar esas líneas y actualizar de nuevo para evitar la instalación o actualización de paquetes desde ese repositorio (lo que podría conducir a un comportamiento inesperado).
Un problema es que necesita mantener esos paquetes para que no se eliminen cuando actualiza su sistema (especialmente el
tzdata
paquete).NOTA : Use este método como último recurso, prefiera cualquier otro que le permita actualizar sin problemas.
fuente