Seiten

Samstag, 10. März 2012

JDownloader auf Linux-Server ohne X11-Frontend betreiben

Wer einen eigenen Root-Server mit Linux betreibt, stellt sich vielleicht die Frage, ob es möglich ist den JDownloader auch ohne grafisches Frontend zu installieren und nur das Webinterface zu nutzen. Eine Installation funktioniert ohne Probleme, aber der JD startet leider nur mit Exceptions, da die GUI nicht geladen werden kann. Ein grafisches Frontend kann man natürlich auf einem Server nicht ohne Weiters starten und das X11-Interface ist auch schwierig zu holen, wenn man von Windows aus administriert.Dem kann man aber Abhilfe schaffen, indem man mit dem virtuellen Framebuffer herumspielt. Wie und ob das funktioniert erfahrt ihr hier.

Als Grundlage dient ein Debian Squeeze ohne X11. Für die Installation benötigen wir einige Tool, die benötigt werden:

  • Java (für den JDownloader)
  • xvfb (der virtuelle Framebuffer)
  • x11vnc (für die Administration)
  • den JDownloader
Zunächst installieren wir erst einmal als superuser Java, xvfb und x11vnc:

apt-get install x11vnc openjdk-6-jre xvfb

Ich verwende das OpenJDK anstelle des offiziellen Oracle-Paketes. Dafür muss nichts extra getan werden, da dies in den Paketquellen enthalten ist. Nach erfolgreicher Installation laden wir den JDownloader und installieren ihn (die URL kann sich unterscheiden, bitte auf der Downloadseite überprüfen):

wget http://installer.jdownloader.org/jd_unix_0_9.sh
chmod +x jd_unix_0_9.sh
./jd_unix_0_9.sh

Nach einigen Fragen des Installers ist der JDownloader nun im Verzeichnis /usr/local/jdownloader installiert. Für das einmalige Einrichten des Webinterfaces und des Downloadordners, etc. müssen wir den JD starten. Dafür benötigen wir das grafische Frontend, welches wir in den virtuellen Framebuffer umleiten. Danach ist dieser per VNC konfigurierbar. Wichtig ist, dass alle Befehle als Hintergrundjob gestartete werden, das hat den Vorteil, dass nur eine SSH_Session benötigt wird:

Xvfb -screen 0 800x600x16 -ac & 
DISPLAY=:0 java -jar /usr/local/jdownloader/JDownloader.jar &
x11vnc -display :0 &

Durch die eingegebenen Befehle haben wir ein virtuelles Display 0 mit der Größe 800x600 Pixel, Farbtiefe 16-Bit angelegt. Auf diesem haben wir den JDownloader gestartet. Der letzte Befehl startet den VNC-Server der das eben angelegte Display weiterleitet. Nun sollte eine Verbindung per VNC (z.B.: TightVNC) möglich sein:


Alle gewünschten Einstellungen können nun ausgeführt werden. Mindestens sollte aber das Webinterface installiert sein und/oder alle AGBs bestätigt werden.

In der Konsole kann nun der JDownloader neu gestartet werden und das Webinterface ausprobiert werden:

pkill -f java
DISPLAY=:0 java -jar /usr/local/jdownloader/JDownloader.jar &
Wenn dies klappt sind wir schon fast fertig. Die Fenstergröße des virtuellen Displays wird natürlich nicht so groß gebraucht und der VNC-Server wird nicht mehr gebraucht. Deshalb beenden wir erst einmal alles:


pkill -f java
pkill -f x11vnc
pkill -f Xvfb


Als letzten Schritt wird das virtuelle Display mit einer Größe von 1x1 Pixeln und 8 Bit Farbtiefe gestartet. Nun noch den JDownloader wieder starten und das Webinterface sollte erreichbar sein:


Xvfb -screen 0 1x1x8 -ac & 
DISPLAY=:0 java -jar /usr/local/jdownloader/JDownloader.jar &


Wenn alles richtig durchgeführt wurden ist, sieht das ungefähr so aus (Hinweis: der verlängerte Befehl zum Start des JD dient nur der Unterdrückung der Ausgabe für den Screenshot) :




Kommentare:

  1. Bei apt-get install x11vnc opnjdk-6-jre xvfb fehlt bei opnjdk-6-jre das e, richtig wäre openjdk-6-jre ;-)

    AntwortenLöschen
  2. Steht in der Administration über VNC auch eine Maus und eine Tastatur zur Verfügung?

    Ansonsten vielen Dank für das schöne Tutorial!

    AntwortenLöschen
  3. Danke für den Hinweis, habe es ausgebessert ;)

    AntwortenLöschen
  4. Hallo Nicco,

    Maus und Tastatur steht wie gewohnt zur Verfügung.

    AntwortenLöschen
  5. Hallo ich habe das Problem das ich im VNC nur ein ca. 200x100px Feld von Jdownloader sehe und rest des Fensters ist schwarz.

    AntwortenLöschen
  6. Tolle Lösung!!!
    Bei mir brauchte es allerdings 1024x768. So läuft jdownloader endlich sauber auf dem raspberry

    AntwortenLöschen
  7. Funktioniert übrigens für JD2 nicht auf raspberry pi, da JRE mitgepackt ist und logischerweise die falsche Architektur!

    AntwortenLöschen