rTorrent unter Ubuntu Karmic 9.10 / Debian 5 Lenny kompilieren mit Magnet Link Support (und weiterem…)

Posted by on 29 Nov 2009 | Tagged as: CLI, Debian, hyper_ch, Ubuntu

rTorrent ist ein genialer Bittorrent Client. Es basiert auf ncurses und wird normalerweise über die Command Line aus gesteuert. Gegenüber anderen Clients wie Vuze ist er auch wenig speicherintensiv. Es gibt zwar verschieden Web Interfaces, aber ich benutze keine davon. rTorrent in Screen mit SSH Zugriff ist alles was ich brauche.

Kürzlich wurde auch von The Pirate Bay angekündigt, dass in Zukunft dort kein Tracker mehr betrieben wird und alle Torrents als Magnet Links angeboten werden. rTorrent hat von Hause aus zu diesem Zeitpunkt noch keinen Magnet Link Support. Allerdings gibt es “einen” Patch, der Magnet Link Support integriert. Nachfolgendes HowTo ist eine Schritt-für-Schritt Anleitung um rTorrent mit Magnet Link Support zu kompilieren. Zudem werde ich auch noch ein paar weitere Erweiterungen einspielen (und diese jeweils markieren).

Diese Howto gilt sowohl für Ubuntu Karmic 9.10 wie auch Debian 5 Etch. Der einzige Unterschied liegt darin, dass Ubuntu sudo benutzt und alles was mit sudo bezeichnet wird, muss unter Debian als root ausgeführt werden.

Ich gehe in diesem Howto davon aus, dass die SVN Quellen unter ~/rtorrent gespeichert werden resp. in ~/rtorrent/trunk

 

1: Bisherige rTorrent Installation entfernen

sudo apt-get remove rtorrent libtorrent*

 

2: Notwendige Pakete installieren

sudo apt-get install subversion build-essential libtool automake openssl libsigc++-2.0-dev libncurses5-dev libcurl4-openssl-dev

 

3. rtorrent Verzeichnis kreieren

mkdir ~/rtorrent

 

4. Ins rtorrent Verzeichnis wechseln

cd ~/rtorrent

Pfad: /home/USER/rtorrent

 

5. SVN Daten holen

svn co svn://rakshasa.no/libtorrent/trunk

Derzeit ist die aktuelle Version rev. 1105.

 

6. Ins trunk Verzeichnis wechseln

cd trunk

Pfad: /home/USER/rtorrent/trunk

 

7. Patches herunter laden

Für Magnet Link Support:

wget http://ovh.ttdpatch.net/~jdrexler/rt/experimental/dht-pex-static_map.diff
wget http://ovh.ttdpatch.net/~jdrexler/rt/experimental/magnet-uri.diff
wget http://ovh.ttdpatch.net/~jdrexler/rt/experimental/object-sstr.diff

Der Magent Link Support Patch wurde von Josef geschrieben. Ich verweise hierbei auf http://libtorrent.rakshasa.no/ticket/955.

Farbsupport für rTorrent nCurses:

wget http://www.simplylinux.ch/rtorrent/canvas-color.patch

Solltest du Rev. 1131 oder neuer benutzen, dann muss dieser Patch hier verwendet werden (Danke an Italian_Plumber für den Patch):
wget http://www.simplylinux.ch/rtorrent/canvas-color_1131.patch

Damit kann im rTorrent Interface farblich zwischen fertigen/unfertigen sowie aktive/inaktive Torrents unterschieden werden. Ich musste mich zuerst auch daran gewöhnen, aber zwischenzeitlich finde ich das ganz praktisch. Der Patch kommt von hier: http://libtorrent.rakshasa.no/ticket/1382. Allerdings funktioniert der Patch mit rev. 1105 nicht mehr, ich müsste eine Änderung vornehmen und der Original-Patch hat noch nie vom Trunk Verzeichnis aus funktioniert. Auch das habe ich behoben.

Torrent Tracker Stats:

wget http://www.simplylinux.ch/rtorrent/trackerinfo.patch

Dieser Patch zeigt in der Tracker View an, wieviele Leute diesen Torrent ziehen. Allerdings sind die Stats sehr unzuverlässig aber es gibt doch eine gewisse Idee. Ich benutz es hauptsächlich um zu sehen welcher Tracker hat überhaupt irgendwelche Peers.

 

8. Patches anwenden

Für Magnet Link Support:

patch -p0 < dht-pex-static_map.diff
patch -p0 < magnet-uri.diff
patch -p0 < object-sstr.diff
[/codesyntax]
 
Sollte der erste Patch oben folgenden Fehler verursachen:
[codesyntax lang="bash"]
patching file libtorrent/src/torrent/Makefile.am
Hunk #1 FAILED at 41.
Hunk #2 FAILED at 77.
2 out of 2 hunks FAILED -- saving rejects to file libtorrent/src/torrent/Makefile.am.rej
[/codesyntax]
Dann ist die rTorrent Version zu neu und der Patch wurde noch nicht geupdated. Aus diesem Grunde habe ich einen eigenen weiteren Patch kreiert um das zu beheben. Einfach folgendes ausführen:
[codesyntax lang="bash"]
wget http://www.simplylinux.ch/rtorrent/dht-pex-static_map_rev1117.diff
patch -p0 < dht-pex-static_map_rev1117.diff 
[/codesyntax]
 
Farbsupport für rTorrent nCurses:
[codesyntax lang="bash"]
patch -p0 < canvas-color.patch
[/codesyntax]
 
Torrent Tracker Stats:
[codesyntax lang="bash"]
patch -p0 < trackerinfo.patch
[/codesyntax]
 
 
 
9. Ins libtorrent Verzeichnis wechseln
[codesyntax lang="bash"]
cd libtorrent

Pfad: /home/USER/rtorrent/trunk/libtorrent

 

10. Autogen laufen lassen

./autogen.sh

 

11. libtorrent konfigurieren

./configure

 

12. libtorrent kompilieren

make

 

13. libtorrent installieren

sudo make install

 

14. /etc/ld.so.conf erweitern

echo "include /usr/local/lib" | sudo tee -a /etc/ld.so.conf

 

15. ld.so Cache neu laden

sudo ldconfig

 

16. Ins rtorrent Verzeichnis wechseln

cd ../rtorrent

Pfad: /home/USER/rtorrent/trunk/rtorrent

 

17. Autogen laufen lassen

./autogen.sh

 

18. rtorrent konfigurieren

./configure

 

19. rtorrent kompilieren

make

 

20. rtorrent installieren

sudo make install

 

21. rTorrent Konfiguration erweitern

Der Magnet Link Support setzt zwingend ein Session Verzeichnis voraus. Falls noch kein Session Verzeichnis oder noch gar keine rTorrent Config Datei vorhande ist, dann das noch hinzufügen. Eine Beispiel rTorrent Config Datei findet sich hier: http://libtorrent.rakshasa.no/browser/trunk/rtorrent/doc/rtorrent.rc#latest oder man kann sie einfach aus dem Trunk kopieren (und danach anpassen):

cp ~/rtorrent/trunk/rtorrent/doc/rtorrent.rc ~/.rtorrent.rc

Ebenfalls würde ich noch DHT auf ON setzen in der Config.
Danke Xo für den Hinweis fürs Kopieren

Um von den Farben gebrauch zu machen, müssen diese auch noch hinzugefügt werden. Bei mir sieht das derzeiten so aus:

# Color / Canvas patch
done_fg_color = 2
#done_bg_color = 2
active_fg_color = 1
#active_bg_color = 4

Dadurch werden inaktive fertige Torrent dunkelgrün, aktive fertige Torrents hellgrün, inaktive unvollständigen Torrents dunkelrot und aktive unvollständige Torrents hellrot. Mit den Farben kann herumgespielt werden. Die verwendbaren Farben sind: 0 = schwarz; 1 = rot; 2 = grün; 3 = gelb; 4 = blau; 5 = magenta; 6 = cyan; 7 = weiss;

 

22. rTorrent kann nun gestartet werden

rtorrent

 

Wie gebrauchen?

Der Gebrauch ist eigentlich ganz einfach. In rTorrent entweder die Backspace oder Enter Taste drücken und dann die URL des Magnet Links reinkopieren und mit Enter bestätigen. Der Unterschied zwichen Enter und Backspace liegt darin, dass Enter nur den Link hinzufügt, Backspace aber den Link auch gleich startet.

Ebenfalls gibts die Möglichkeit, dass die Magnet Links direkt beim draufklicken in einem Browser an rTorrent übergeben werden:

#!/bin/bash
 
cd ~/watch    # set your watch directory here
[[ "$1" =~ xt=urn:btih:([^&/]+) ]] || exit;
echo "d10:magnet-uri${#1}:${1}e" > "meta-${BASH_REMATCH[1]}.torrent"

Einfach dieses Bashscript im System speichern, z.B. unter ~/rtorrent_magnet.sh und ausführbar machen. Dann den Browser so konfigurieren, dass beim Klick auf einen Magnet Link dieses Bashscript ausgeführt wird (also Magnet Links mit diesem Bashscript öffnen). Ich habs zwar bisher nicht selbst ausprobiert, aber da Josef auch den Magnet Link Patch zur kreiert hat, habe ich vertrauen in seine Fähigkeiten.

2 Responses to “rTorrent unter Ubuntu Karmic 9.10 / Debian 5 Lenny kompilieren mit Magnet Link Support (und weiterem…)”

  1. on 30 Nov 2009 at 10:47 1.xo said …

    wow, vielen dank erstmal für die mühe!
    wie es scheint habe ich dank dem autor nun zumindest mal ein lauffähiges programm kompiliert bekommen 😉

    bin aber auf folgende probleme gestossen:

    unter 7. ist leider link no. 2 futsch:
    http://ovh.ttdpatch.net/~jdrexler/rt/experimental/magnet-hex-hash.diff gibt es nicht mehr, auch nicht unter ähnlichem namen.

    unter 8. kann ich eben diesen “magnet-hex-hash”-patch folglich nicht installieren, zudem wollen patch no. 6 und 7 änderungen an dateien durchführen, die ich mit “yes” durchwinke…denke mal das soll so sein?!

    …oh, und ich hab ewig versucht diese rc-file geschickt runterzuladen (ohne diese zeilen nummerierung), also wennn jemand genauso auf dem schleauch steht wie ich:
    die file liegt genauso schon auf der HDD rum, unter /trunk/rtorrent/doc/rtorrent.rc : nach dem editieren dann als ‘~/.rtorrent.rc’ speichern und schon passts.

    okay, ich sage nochmal vielen dank für diese tolle step-by-step anleitung, für normal user wie mich wirklich praktisch um rtorrent mal in augenschein zu nehmen, thumbs up!

  2. on 30 Nov 2009 at 10:57 2.hyper_ch said …

    Hallo xo

    Es scheint als habe Josef die Patches schon geupdated. Ich werds mit seinen neuen Versionen testen und dann gegebenenfalls das Howto updaten. Hätte doch noch einen Tag länger warten sollen.

    Soweit ich das zur Zeit beurteilen kann sind folgende Patches unnötig:

    magnet-hex-hash.diff
    include_cstdio.patch
    download_list.patch
    object_stream.diff

    Update
    Ich habe das Howto entsprechend angepasst mit den neuen Patches :)