Es sieht nicht so aus, als würde der Betreuer von openjdk-r / ppa das openjdk-7-Paket über die Version 7u95-2.6.4-3 hinaus aktualisieren. Die Beschreibung des Pakets "Aus debian experimental in Primary Archive für Debian GNU / Linux kopiert" gibt uns jedoch einen Hinweis darauf, wie wir damit umgehen sollen.
Laden Sie die für Ihre Architektur bestimmten Pakete herunter:
(Für die meisten Benutzer bedeutet dies amd64, wenn 64-Bit oder i386, wenn 32-Bit-Ubuntu installiert ist.)
(Versuch) die Pakete zu installieren mit dpkg
:
Ubuntu 17.10 und früher:
sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
Ubuntu 18.04 und höher:
sudo dpkg -i openjdk-7-* libjpeg62-turbo*
Überprüfen Sie die Ausgabe von dpkg
. Wenn Abhängigkeitsprobleme aufgetreten sind (was wahrscheinlich ist), wird Folgendes angezeigt (wobei Ihre Architektur amd64 ersetzt):
Bei der Verarbeitung sind Fehler aufgetreten:
openjdk-7-jre: amd64
openjdk-7-jre-headless: amd64
openjdk-7-jdk: amd64
Wenn keine Abhängigkeitsprobleme aufgetreten sind, fahren Sie mit Schritt 4 fort. Andernfalls wird Folgendes ausgeführt, wenn Sie einige Abhängigkeitsprobleme lösen müssen:
sudo apt install -f
Beachten Sie, dass keine erneute Ausführung erforderlich ist, dpkg
nachdem apt
Abhängigkeiten aufgelöst wurden. Die Installation der openjdk-Pakete wird automatisch beendet.
Aktualisieren Sie Java-Alternativen. Sie können alle installierten Java-Versionen mit anzeigen update-java-alternatives --list
. Führen Sie zum Aktivieren von OpenJDK Java 1.7 Folgendes aus:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
Möglicherweise bemerken Sie einen Fehler, dass das IcedTeaPlugin.so
Plugin nicht verfügbar ist. Dies ist für Entwickler, die mit dem JDK arbeiten, kein wirkliches Problem.
Überprüfen Sie, ob Java funktioniert:
java -version
was sollte etwas ähnliches ausgeben:
Java-Version "1.7.0_161"
OpenJDK-Laufzeitumgebung (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK 64-Bit Server VM (Build 24.161-b01, gemischter Modus)
Erstellen Sie eine Pinning-Datei, die apt
nur Pakete berücksichtigt, die uns interessieren (wir möchten mit Sicherheit nicht, dass unsere gesamte Ubuntu-Distribution mit experimentellen Debian-Paketen "aktualisiert" wird).
Erstellen Sie eine Datei /etc/apt/preferences.d/debian
mit dem folgenden Inhalt. Sie werden Superuser - Rechte benötigen, so dass man von verwenden sudo vim
, sudo nano
, gksudo gedit
usw.
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
Fügen Sie für Ubuntu 17.10 und früher außerdem Folgendes hinzu (siehe Hinweis unten):
Package: libfontconfig1
Pin: release o=Debian,n=sid
Pin-Priority: 500
Package: fontconfig-config
Pin: release o=Debian,n=sid
Pin-Priority: 500
Installieren Sie den Debian-Schlüsselring:
sudo apt install debian-archive-keyring
Hinweis: Dies ist zwar die einfachste Methode, um den Debian-Schlüsselring hinzuzufügen, sie ist jedoch möglicherweise nicht auf dem neuesten Stand. Überprüfen Sie die Ausgabe wie folgt, wenn Sie apt update
in Schritt 4 ausführen:
W: GPG-Fehler: http://cdn-fastly.deb.debian.org/debian experimental InRelease: Die folgenden Signaturen konnten nicht überprüft werden, da der öffentliche Schlüssel nicht verfügbar ist: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
E: Das Repository 'http://httpredir.debian.org/debian experimental InRelease' ist nicht signiert.
Wenn Sie diesen Fehler sehen, fügen Sie die erforderlichen Schlüssel manuell hinzu mit:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
Wo 8B48AD6246925553
und 7638D0442B90D010
sollten die Pubkeys übereinstimmen, die in der Warnmeldung angezeigt werden?
Fügen Sie die erforderlichen Repositorys hinzu:
sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'
Warum nicht ein stabiles Debian-Repository verwenden? Sie werden mit Debian Stable auf unbefriedigende Abhängigkeiten stoßen. Die experimentellen Repositorys (für openjdk-7) und sid-Repositorys (für libjpeg62-turbo, libfontconfig1 und fontconfig-config) sind in Abhängigkeitsversionen weniger anfällig.
Aktualisieren apt
Cache (erwarten , dass dies eine Weile dauern , da Debians Paketlisten groß sind):
sudo apt update
Installieren Sie openjdk-7-jdk:
sudo apt install openjdk-7-jdk
Aktualisieren Sie Java-Alternativen. Sie können alle installierten Java-Versionen mit anzeigen update-java-alternatives --list
. Führen Sie zum Aktivieren von OpenJDK Java 1.7 Folgendes aus:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
Möglicherweise bemerken Sie einen Fehler, dass das IcedTeaPlugin.so
Plugin nicht verfügbar ist. Dies ist für Entwickler, die mit dem JDK arbeiten, kein wirkliches Problem.
Überprüfen Sie, ob Java funktioniert:
java -version
was sollte etwas ähnliches ausgeben:
Java-Version "1.7.0_161"
OpenJDK-Laufzeitumgebung (IcedTea 2.6.12) (7u161-2.6.12-1)
OpenJDK 64-Bit Server VM (Build 24.161-b01, gemischter Modus)