Non sembra che il manutentore di openjdk-r / ppa aggiornerà il pacchetto openjdk-7 oltre la versione 7u95-2.6.4-3. La descrizione di quel pacchetto "Copiato da debian sperimentale nell'archivio primario per Debian GNU / Linux" ci dà però un indizio su come gestirlo da soli.
Scarica i pacchetti previsti per la tua architettura:
(per la maggior parte degli utenti, questo significa amd64 se 64 bit o i386 se è installato Ubuntu 32 bit)
(Tentativo di) installare i pacchetti utilizzando dpkg
:
Ubuntu 17.10 e precedenti:
sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
Ubuntu 18.04 e versioni successive:
sudo dpkg -i openjdk-7-* libjpeg62-turbo*
Controllare l'uscita da dpkg
. Se ci fossero problemi di dipendenza - che è probabile - vedrai quanto segue (con la tua architettura sostituita da amd64):
Si sono verificati errori durante l'elaborazione:
OpenJDK-7-jre: amd64
OpenJDK-7-jre-headless: amd64
OpenJDK-7-JDK: amd64
Se non ci sono stati problemi di dipendenza, ottimo, hai finito, vai al numero 4. Altrimenti, se è necessario risolvere alcuni problemi di dipendenza, questo viene gestito con:
sudo apt install -f
Si noti che non è necessario rieseguire dpkg
dopo aver lasciato apt
risolvere le dipendenze. Completerà automaticamente l'installazione dei pacchetti openjdk.
Aggiorna alternative java. È possibile visualizzare tutte le versioni Java installate con update-java-alternatives --list
. Per attivare OpenJDK Java 1.7, eseguire:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
È possibile notare un errore relativo alla IcedTeaPlugin.so
non disponibilità del plug-in. Questa non è una vera preoccupazione per gli sviluppatori che lavorano con JDK.
Verifica che java funzioni:
java -version
che dovrebbe produrre qualcosa di simile a:
versione java "1.7.0_161"
OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
VM del server OpenJDK a 64 bit (build 24.161-b01, modalità mista)
Crea un file pinning che dice apt
di considerare solo i pacchetti che ci interessano (di certo non vogliamo che la nostra intera distribuzione Ubuntu sia "aggiornata" con i pacchetti sperimentali Debian).
Crea un file /etc/apt/preferences.d/debian
con i seguenti contenuti. Avrete bisogno di privilegi di superutente, in modo da utilizzare uno dei 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
Per Ubuntu 17.10 e precedenti, aggiungi anche quanto segue (e vedi la nota in fondo):
Package: libfontconfig1
Pin: release o=Debian,n=sid
Pin-Priority: 500
Package: fontconfig-config
Pin: release o=Debian,n=sid
Pin-Priority: 500
Installa il portachiavi Debian:
sudo apt install debian-archive-keyring
Nota: sebbene questo sia il metodo più semplice per aggiungere il keyring debian, potrebbe non essere aggiornato. Verificare l'output come il seguente durante l'esecuzione apt update
nel passaggio 4:
W: Errore GPG: http://cdn-fastly.deb.debian.org/debian InRelease sperimentale: le seguenti firme non possono essere verificate perché la chiave pubblica non è disponibile: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
E: Il repository "http://httpredir.debian.org/debian sperimentale InRelease" non è firmato.
Se viene visualizzato questo errore, quindi aggiungere manualmente le chiavi necessarie con:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
dove 8B48AD6246925553
e 7638D0442B90D010
dovrebbe corrispondere ai pubkeys che vedi nel messaggio di avviso.
Aggiungi i repository necessari:
sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'
Perché non usare un repository Debian stabile? Incontrerai dipendenze insoddisfacenti con Debian stable. I repository sperimentali (per openjdk-7) e sid (per libjpeg62-turbo, libfontconfig1 e fontconfig-config) sono più indulgenti con le versioni di dipendenza.
Aggiorna apt
cache (aspettati che questo richieda un po 'di tempo poiché gli elenchi dei pacchetti di Debian sono grandi):
sudo apt update
Installa openjdk-7-jdk:
sudo apt install openjdk-7-jdk
Aggiorna alternative java. È possibile visualizzare tutte le versioni Java installate con update-java-alternatives --list
. Per attivare OpenJDK Java 1.7, eseguire:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
È possibile notare un errore relativo alla IcedTeaPlugin.so
non disponibilità del plug-in. Questa non è una vera preoccupazione per gli sviluppatori che lavorano con JDK.
Verifica che java funzioni:
java -version
che dovrebbe produrre qualcosa di simile a:
versione java "1.7.0_161"
OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
VM del server OpenJDK a 64 bit (build 24.161-b01, modalità mista)