Wie installiere ich Oracle Java auf Debian Wheezy mit make-jpkg und fakeroot ohne Fehler?

Wie installiere ich Oracle Java auf Debian Wheezy mit make-jpkg und fakeroot ohne Fehler?

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-jpkgahmt 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-fileherausfinden, 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.

verwandte Informationen