Ich möchte mein Hauptsystem auf 16.04 upgraden, arbeite aber an Projekten, die OpenJDK 7 erfordern.
Anscheinend ist es nicht aus einer Kleinigkeit erhältlich apt-get install openjdk-7-jdk
. Im Repository sind nur die Versionen 8 und 9 aufgeführt.
Kann mir jemand Anweisungen zur Installation geben?
Antworten:
AKTUALISIERUNG: DIES IST DIE AM MEISTEN ABGEGEBENE ANTWORT, DIE IHRER MÖGLICHERWEISE 2018 NICHT GEWÜNSCHT WURDE, DA SICHERHEITS-UPDATES DURCH DIESES PPA NICHT VORHANDEN SIND.
Ich fand die folgenden Anweisungen, die für mich arbeiteten:
Dies definiert die "PPA für OpenJDK-Uploads (eingeschränkt)" als zusätzliches Paket-Repository, aktualisiert Ihre Informationen und installiert das Paket mit seinen Abhängigkeiten (von diesem Repository).
quelle
sudo update-java-alternatives
Sie nach dem Befolgen dieser Antwort a ausführen, damit Sie openjdk-7 als Standard festlegen können.Edit 22-Jul-2019 : Diese Antwort funktioniert derzeit nicht. Die unten genannten JDK-Pakete sind bei Debian Experimental nicht mehr verfügbar. In jedem Fall blieben sie hinter den Paketen von Ubuntu Trusty zurück, die neuere Sicherheitsupdates enthielten. Bitte lesen Sie die anderen Antworten, bis dies behoben werden kann (leider keine ETA).
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.
Option 1: Manuelle Installation
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:
Ubuntu 18.04 und höher:
Überprüfen Sie die Ausgabe von
dpkg
. Wenn Abhängigkeitsprobleme aufgetreten sind (was wahrscheinlich ist), wird Folgendes angezeigt (wobei Ihre Architektur amd64 ersetzt):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:
Beachten Sie, dass keine erneute Ausführung erforderlich ist,
dpkg
nachdemapt
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: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:
was sollte etwas ähnliches ausgeben:
Option 2: Automatische Installation (einschließlich Updates mit
apt
)Das Fixieren kann verwendet werden, um openjdk-7-jdk und seine Abhängigkeiten von Debian-Repositorys zu installieren und zu aktualisieren.
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 verwendensudo vim
,sudo nano
,gksudo gedit
usw.Fügen Sie für Ubuntu 17.10 und früher außerdem Folgendes hinzu (siehe Hinweis unten):
Installieren Sie den Debian-Schlüsselring:
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:Wenn Sie diesen Fehler sehen, fügen Sie die erforderlichen Schlüssel manuell hinzu mit:
Wo
8B48AD6246925553
und7638D0442B90D010
sollten die Pubkeys übereinstimmen, die in der Warnmeldung angezeigt werden?Fügen Sie die erforderlichen Repositorys hinzu:
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):Installieren Sie 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: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:
was sollte etwas ähnliches ausgeben:
fontconfig Notizen
libfontconfig1
undfontconfig-config
muss unter Ubuntu 17.10 und früher auf 2.12 oder höher aktualisiert werden. Die Update-Pakete von Debian enthalten keine Ubuntu-Anpassungen, so dass einige Anwendungen hässliche Schriftarten anzeigen, wenn diese Pakete installiert sind. zB Charles Web Debugging Proxy. Abhängig von den von Ihnen verwendeten Programmen sind Sie möglicherweise von diesem Problem betroffen oder nicht.quelle
Sie können ein OpenJDK 7 von Azul herunterladen, das Ihren Anforderungen entspricht. Beide haben eine DEB (für das Paketsystem) und eine ZIP-Distribution. Ich habe nur mit der ZIP-Distribution gearbeitet.
http://www.azul.com/downloads/zulu/zulu-linux/
quelle
Installieren Sie Java 7 unter Ubuntu 16.04, Ubuntu 17.04
Es wird empfohlen, Oracle Java zu installieren , da es einen Leistungsvorteil gegenüber OpenJDK hat . Aus diesem Grund möchte ich eine Alternative posten. Wenn Sie Oracle Java installieren möchten, führen Sie die folgenden Befehle im Terminal aus, um es von PPA aus zu installieren.
Fügen Sie die erforderlichen Repositorys hinzu:
Aktualisiere den
apt
Cache und installiere oracle-java7 :Während des Installationsvorgangs müssen Sie die Oracle-Lizenzvereinbarung akzeptieren . Nach der Installation müssen Java-Umgebungsvariablen wie JAVA_HOME festgelegt werden
Korrigieren Sie Java-Umgebungsvariablen.
Überprüfen Sie, ob Java funktioniert:
was sollte etwas ähnliches ausgeben:
quelle
apt-get
versucht, das Installationsprogramm von einer nicht vorhandenen Seite zu erhalten. - Wenn Sie JDK 7 benötigen, können Sie Installationsprogramme von der Archiv-Website herunterladen: oracle.com/technetwork/java/javase/downloads/…Oracle JDK-Alternative:
Ich wollte den Aufwand mit Repositorys vermeiden, da ich zwischen 7, 8 und 9 wechsle, sodass ich Oracle JDK anstelle von OpenJDK verwendet habe. Von der offiziellen Website heruntergeladen . Ich bin mir nicht sicher, ob der neueste Build 80 dieselben Fixes enthält wie OpenJDKs Build 161. Aber ich habe es für die Entwicklung, sodass mir das sowieso nicht viel bedeutet.
Dann muss man
$JAVA_HOME
in der Umgebung einstellen , dass verschiedene Skripte das richtige JDK aufnehmen (zB Maven, JBoss etc.).Der Vollständigkeit halber wurde JDK Version 7 EOL'ed, selbst der öffentliche Support für JDK 8 wird seit September 2017 eingestellt und wird nach September 2018 nicht mehr öffentlich aktualisiert.
quelle
Behälter verwenden
Dies ist eine allgemein gültige Antwort darauf, wie
<outdated>
entfernte Software unter<current>
Ubuntu ausgeführt wird: Containerisieren Sie Ihre Anwendung .Verwenden Sie beispielsweise Docker und ein älteres Ubuntu-Basis-Image, in dem die gesuchte Software noch verfügbar ist.
Es funktioniert auch umgekehrt; Probieren Sie die Software auf einer neueren oder sogar einer anderen Linux-Distribution auf Ihrem derzeit stabilen Ubuntu aus.
Beispiel für Java 7 mit Ubuntu 14.04
Docker installieren - Die kostenlose Docker CE-Version ist in Ordnung. Siehe zum Beispiel https://docs.docker.com/install/linux/docker-ce/ubuntu/ oder verwenden Sie das
docker.io
Paket in den neuesten Ubuntu-Versionen, die ausgeliefert wurden.Erstellen Sie in einem leeren Ordner eine Datei
Dockerfile
:Fügen Sie diesem Befehl weitere Pakete hinzu, wenn Sie dies benötigen.
Führen Sie in diesem Ordner Folgendes aus:
Führen Sie einen Befehl in einem Einwegcontainer mit diesem Java 7-Image aus:
ZB
java -version
:Ausgabe:
Erstellen Sie optional einen Wrapper.
Erstellen Sie eine Datei
/usr/local/bin/java7-in-docker
mit Inhalten:Dadurch wird das aktuelle Arbeitsverzeichnis im Container verfügbar, nicht im gesamten Dateisystem, und es wird die Identität Ihres lokalen Benutzerkontos im Containernamensraum angenommen.
Markiere es als ausführbar:
Führen Sie Java 7 transparent wie folgt aus:
quelle
Ein einfacher Weg ist:
Fügen Sie diese Zeilen an:
/etc/apt/sources.list
:Dann update apt und installiere. Sie müssen wahrscheinlich ein Downgrade des
tzdata
Pakets durchführen.Danach würde ich empfehlen , diese Zeilen zu kommentieren und das Update erneut durchzuführen , um zu verhindern, dass Pakete aus diesem Repository installiert oder aktualisiert werden (was zu unerwartetem Verhalten führen kann).
Ein Problem ist, dass Sie diese Pakete aufbewahren müssen, damit sie nicht entfernt werden, wenn Sie Ihr System aktualisieren (speziell das
tzdata
Paket).HINWEIS : Verwenden Sie diese Methode als letzten Ausweg. Bevorzugen Sie eine andere Methode, mit der Sie problemlos aktualisieren können.
quelle