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.
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:
sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
Ubuntu 18.04 y posterior:
sudo dpkg -i openjdk-7-* libjpeg62-turbo*
Verifique la salida de dpkg
. Si hubo problemas de dependencia, lo cual es probable, verá lo siguiente (con su arquitectura sustituida por amd64):
Se encontraron errores al procesar:
openjdk-7-jre: amd64
openjdk-7-jre-headless: amd64
openjdk-7-jdk: 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:
sudo apt install -f
Tenga en cuenta que no es necesario volver a ejecutar dpkg
después de permitir apt
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:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
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:
java -version
que debería generar algo similar a:
versión de Java "1.7.0_161"
OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK 64-Bit Server VM (compilación 24.161-b01, modo mixto)
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 de sudo vim
, sudo nano
, gksudo gedit
, etc.
Package: *
Pin: release o=Debian,n=experimental
Pin-Priority: -1
Package: *
Pin: release o=Debian,n=sid
Pin-Priority: -1
Package: openjdk-7-jdk
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: openjdk-7-jre
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: openjdk-7-jre-headless
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: libjpeg62-turbo
Pin: release o=Debian,n=sid
Pin-Priority: 500
Para Ubuntu 17.10 y versiones anteriores, también agregue lo siguiente (y vea la nota en la parte inferior):
Package: libfontconfig1
Pin: release o=Debian,n=sid
Pin-Priority: 500
Package: fontconfig-config
Pin: release o=Debian,n=sid
Pin-Priority: 500
Instale el llavero de Debian:
sudo apt install debian-archive-keyring
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:
W: Error de GPG: http://cdn-fastly.deb.debian.org/debian experimental InRelease: Las siguientes firmas no se pudieron verificar porque la clave pública no está disponible: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
E: El repositorio 'http://httpredir.debian.org/debian experimental InRelease' no está firmado.
Si ve este error, agregue manualmente las claves necesarias con:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
dónde 8B48AD6246925553
y 7638D0442B90D010
deben coincidir con los pubkeys que ves en el mensaje de advertencia.
Agregue los repositorios necesarios:
sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'
¿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):
sudo apt update
Instale openjdk-7-jdk:
sudo apt install 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:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
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:
java -version
que debería generar algo similar a:
versión de Java "1.7.0_161"
OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK 64-Bit Server VM (compilación 24.161-b01, modo mixto)