
Wie installiere ich Oracle Java auf Debian Wheezy mit make-jpkg und fakeroot?
Das Handbuch zur Installation von Oracle Java auf Debian Wheezy ist ziemlich klar und verständlich:
http://wiki.debian.org/JavaPackage https://blogs.oracle.com/marigan/entry/installation_of_the_jdk_on http://www.debian-administration.org/articles/142
- Laden Sie jdk-7u21-linux-x64.tar.gz von Oracle herunter
- installiere das Java-Paket
- Führen Sie make-jpkg mit jdk-7u21-linux-x64.tar.gz aus
als Root ausführen:
make-jpkg jdk-7u21-linux-x64.tar.gz
fakeroot make-jpkg jdk-7u21-linux-x64.tar.gz
führt zu folgendem Fehler:
Sie sind ein echter Root. Leider haben einige Java-Distributionen Installationsskripte, die /etc direkt manipulieren und dadurch Inkonsistenzen auf Ihrem System verursachen können. Stattdessen sollten Sie ein Nicht-Root-Benutzer werden und Folgendes ausführen:
fakeroot make-jpg jdk-7u21-linux-x64.tar.gz
Dadurch wird verhindert, dass Ihre Systemdateien beschädigt werden, und die Java-Distribution kann dennoch erfolgreich extrahiert werden.
Abbrechen.
als normaler Benutzer ausführen:
make-jpkg jdk-7u21-linux-x64.tar.gz
fakeroot make-jpkg jdk-7u21-linux-x64.tar.gz
führt beides zu einer Warn-/Fehlerwand.
einige der Fehler:
dpkg-shlibdeps: warning: Can't extract name and version from library name `libverify.so'
error: couldn't find library libxslt.so.1 needed by /tmp/make-jpkg.MxvYKHyE3L/install/usr/lib/jvm/j2sdk1.7-oracle/jre/lib/amd64/libjfxwebkit.so (ELF format: 'elf64-x86-64'; RPATH: '')
dpkg-gencontrol: warning: Depends field of package oracle-j2sdk1.7: unknown substitution variable ${shlibs:Depends}
dpkg-shlibdeps: error: cannot continue due to the errors listed above
vollständige Ausgabe: ohne Fakeroot http://pastie.org/private/r2llqa2pubqzh8krhbymw
mit fakeroot http://pastie.org/private/kigrgcsam9pvdazbex1fa
die Installation funktioniert einwandfrei:
dpkg -i oracle-j2sdk1.7_1.7.0+update21_amd64.deb
Java-Version:
java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
kann der Fehler ignoriert werden?
Antwort1
Zunächst können Sie die von dpkg-shlibdeps ausgegebenen Warnungen ignorieren. Die Fehler sollten Ihnen Hinweise darauf geben, welche Pakete Sie installieren müssen, um alle Bibliotheksabhängigkeiten für das JDK zu erfüllen.
Der Grund hierfür ist, dass Sie ein Deb-Paket aus einer Binärdistribution erstellen, also einem vorkompilierten JDK. Normalerweise werden Debian-Pakete aus dem Quellcode erstellt, nicht aus Binärdateien. Dazu fügt die Person, die das Paket erstellt, alle Bibliotheken, von denen der Quellcode abhängt, einer bestimmten Datei ( debian/control
) hinzu. Ohne diese installierten Bibliotheken kann der Quellcode nicht kompiliert werden und würde daher kein Paket ergeben.
In Ihrem Fall wurde das gesamte JDK bereits von Oracle kompiliert und make-jpkg
ahmt nur den Prozess der Paketerstellung aus dem Quellcode nach. Daher müssen Sie nicht alle erforderlichen Bibliotheken im Voraus installieren.
Um die Fehler zu beheben, können Sie apt-file
herausfinden, welche Pakete die fehlenden Dateien ( libgtk-x11-2.0.so.0
, libgdk-x11-2.0.so.0
, libatk-1.0.so.0
, …) enthalten und sie alle installieren.
Oder Sie verwenden einfach OpenJDK, das für Debian Wheezy vorinstalliert ist und einfach über installiert werden kann apt-get install openjdk-7-jdk
.