rTorrent SVN mit Colour Patch und ruTorrent kompilieren unter Ubuntu 10.10 Maverick Meerkat / Debian 6 Squeeze

Posted by on 27 Feb 2011 | Tagged as: Benutzer, 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 verschiedene Web Interfaces, aber ich benutze keine davon. rTorrent in Screen mit SSH Zugriff ist alles was ich brauche.

Zusätzlich zu den vorherigen Howtos zeige ich nun auch auf, wie man zu rTorrent auch noch das ruTorrent Webinterface via Apache SSL zum laufen bringt – natürlich geschützt mit einem Passwort.

Diese Howto gilt sowohl für Ubuntu Lucid 10.10 Maverick Meerkat wie auch Debian 6 Squeeze. Der einzige Unterschied liegt darin, dass Ubuntu sudo benutzt und alles was mit sudo bezeichnet wird, muss unter Debian als root ausgeführt werden.

Zusätzlich gehe ich davon aus, dass der Sourcecode in folgendes Verzeichnis heruntergeladen wird: >~/svn/rtorrent

1. Bisherige rTorrent Version entfernen

sudo apt-get remove rtorrent libtorrent*

2. Notwendige Pakete installieren

sudo apt-get install build-essential autoconf apache2 automake libtool libncurses5-dev libncursesw5-dev libcurl4-openssl-dev screen openssl php5 php5-cli libapache2-mod-php5 curl libcppunit-dev libsigc++-2.0-dev subversion php5-cgi libapache2-mod-scgi

3. SVN Verzeichnis erstellen

mkdir ~/svn

4. Ins SVN Verzeichnis wechseln

cd ~/svn

Pfad: /home/USER/svn

5. Den Sourcecode für xmlrpc herunterladen

svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced/ xmlrpc-c

Aktuelle xmlrcp Revision: 2090

6. Ins xmlrpc-c Verzeichnis wechseln

cd xmlrpc-c

Pfad: /home/USER/svn/xmlrpc-c

7. xmlrpc-c konfigurieren

./configure --disable-cplusplus

8. xmlrpc-c kompilieren

make

9. xmlrpc-c installieren

sudo make install

10. rTorrent Verzeichnis erstellen

mkdir ~/svn/rtorrent

11. Ins rTorrent Verzeichnis wechseln

cd ~/svn/rtorrent

Pfad: /home/USER/svn/rtorrent

12. rTorrent Sourcecode herunterladen

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

Aktuelle rTorrent Revision: 1191

13. Ins trunk Verzeichnis wechseln

cd trunk

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

14. Patche herunterladen

Colour Patch:

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

Dieser Patch färbt die Torrent Files je nach deren Status (unvollständig, komplett, aktiv, inaktiv). Der Patch kam ursprünglich von hier, ich habe ihn aber an die aktuelle rTorrent Version angepasst.
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.

15. Patches hinzufügen

Colour Patch:

patch -p0 < canvas-color_1191.patch

Torrent Tracker Stats Patch:

patch -p0 < trackerinfo.patch

16. Ins libtorrent Verzeichnis wechseln

cd libtorrent

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

17. autogen.sh Script laufen lassen

./autogen.sh

18. libtorrent konfigurieren

./configure

19. libtorrent kompilieren

make

20. libtorrent installieren

sudo make install

21. /etc/ld.so.conf erweitern

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

22. ld.so cache updaten

sudo ldconfig

23. Ins rTorrent Verzeichnis wechseln

cd ../rtorrent

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

24. autogen.sh Script laufen lassen

./autogen.sh

25. rTorrent konfigurieren

./configure --with-xmlrpc-c

26. rTorrent kompilieren

make

27. rTorrent installieren

sudo make install

28. rTorrent config Datei kopieren und erweitern

Falls noch keine .rtorrent.rc Datei im Homeverzeichnis vorhanden, dann zuerst die Standard config Datei kopieren:

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

Damit ruTorrent und und der Colour Patch funktionieren, müssen in paar Optionen zur rTorrent config (am Ende) hinzugefügt werden:
http_capath=/etc/ssl/certs
scgi_port = 127.0.0.1:5000
encoding_list = UTF-8
# Color / Canvas patch
done_fg_color = 2
#done_bg_color = 2
active_fg_color = 1
#active_bg_color = 4

Zusätzlich empfehle ich noch folgendes hinzu zufügen
schedule = filter_active,10,10,"view_filter = active,\"or={d.get_up_rate=,d.get_down_rate=}\""
view_sort_new = seeding,less=d.get_message=
schedule = filter_seeding,30,30,"view_filter = seeding,d.get_message=; view_sort = seeding"

Der erste Befehal ändert Ansicht 9 so, dass nur noch aktive Torrents (also Torrents wo es gerade up/download gibt) angezeigt werden. view_sort und der zweite schedule Befehl ändert die Ansicht 8 in solch einem Ausmass, dass nur noch Torrents mit “ungewöhnlichen” Trackermeldungen erscheinen. Dies vereinfacht es Torrents aufzuspüren, die z.B. gelöscht worden sind.

Ebenfalls ist es wichtig, dass ein Download und Session Verzeichnis angelegt wird. In der Standard Config einfach die Optionen aktivieren, den Pfad setzen und die Verzeichnisse lokal kreieren.

Weitere nützliche Infos und Möglichkeiten können auf der Common Tasks Seite abgerufen werden. Vorallem die Sektion bezüglich Watch Directories and Move on Completion sind interessant.

29. rTorrent starten

Nun kann rTorrent gestartet werden – am beesten in einer Screen Session:

screen rtorrent

30. SSL Zertifikat kreieren

sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

31. Ins Webverzeichnis wechseln

cd /var/www

Pfad: /var/www

32. ruTorrent herunterladen

wget http://rutorrent.googlecode.com/files/rutorrent-3.2.tar.gz

33. ruTorrent entpacken

tar xvzf rutorrent-3.2.tar.gz

34. Ins ruTorrent Verzeichnis wechseln

cd rutorrent

Pfad: /var/www/rutorrent

35. .htaccess Datei kreieren

touch .htaccess

36. .htaccess chmodden

chmod 0755 .htaccess

36. .htaccess editieren

Das folgende in die .htaccess einfügen:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

34. in ruTorrent Konfigurationsverzeichnis wechseln

cd conf

Pfad: /var/www/rutorrent/conf

35. config.php editieren

Folgendes:

$XMLRPCMountPoint = "/RPC2";

mit dem ersetzen:

$XMLRPCMountPoint = "/rutorrent/RPC2";

36. ruTorrent chownen

sudo chown -R www-data:www-data /var/www/rutorrent

37. Apache Module aktivieren

sudo a2enmod ssl auth_digest scgi rewrite

38. apache2.conf erweitern

echo "SCGIMount /rutorrent/RPC2 127.0.0.1:5000" | sudo tee -a /etc/apache2/apache2.conf
echo "servername localhost" | sudo tee -a /etc/apache2/apache2.conf

39. Ins sites-enabled Apache Verzeichnis wechseln

cd /etc/apache2/sites-enabled

Pfad: /etc/apache2/sites-enabled

40. 000-default editieren

Nach folgendem

<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

das hier einfügen:
<Directory /var/www/rutorrent/>
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

Dies stellt sicher, dass die .htaccess beachtet wird und somit eine Umleitung auf HTTPS/SSL erfolgt, wenn dies nicht so eingegeben wurde.

41. 000-default editieren

Immer noch die 000-default Datei editieren und folgendes am Schluss einfügen:

<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        SSLEngine on
        SSLCertificateFile /etc/apache2/apache.pem
        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
    <Location /rutorrent>
        AuthType Digest
        AuthName "rtorrent"
        AuthDigestDomain /var/www/rutorrent/ http://SERVER_IP/rutorrent
        AuthDigestProvider file
        AuthUserFile /etc/apache2/passwords
        Require valid-user
        SetEnv R_ENV "/var/www/rutorrent"
     </Location>
</VirtualHost>

SERVER_IP mit der korrekten IP Adresse des Servers ersetzen.

42. Benutzer zu authdigest hinzufügen

sudo htdigest -c /etc/apache2/passwords rtorrent USER

Anstelle von USER den gewünschten Benutzernamen eingeben, danach erfolgt die Aufforderung zur Eingabe eines Passwortes sowie der Bestätigung des Passworts.

43. Apache neustarten

sudo service apache2 restart

Debian Benutzer müssen wie folgt Apache neustarten:
/etc/init.d/apache2 restart

44. Ausprobieren

rTorrent müsste bereits laufen – falls nicht, rTorrent starten. Danach auf dem Server das ruTorrent Verzeichnis aufrufen.

http://SERVER_IP/rutorrent

Es wird automatisch von HTTP auf HTTPS umgeleitet und es erfolgt eine Warnung wegen dem selbst-generierten SSL-Zertifikat. Das Zertifikat akzeptieren und dann mit dem erstellten Benutzer einloggen.

Enjoy

rTorrent mit Farbinterface und ruTorrent

rTorrent mit Farbinterface und ruTorrent

6 Responses to “rTorrent SVN mit Colour Patch und ruTorrent kompilieren unter Ubuntu 10.10 Maverick Meerkat / Debian 6 Squeeze”

  1. on 17 May 2011 at 20:11 1.ghostDancer said …

    Hi, sorry i can’t speak german :-(. Really nice tutorial about installing and patchg rtorrent. I’m thinking in translating it to spanish.
    I have one problem , i’m trying to make it with rtorrent-0.8.8 and not with svn and the color-canvas patch gives an error. I’m not a programmer, so i don’t know exactly how to fix it. Are you going to release it for 0.8.8 or only for svn?. Or you can guide me about what do i have to change in the patch, i can try .

  2. on 17 May 2011 at 20:25 2.hyper_ch said …

    I haven’t tested it for rtorrent 0.8.8…. I use the revision as shown in the howto. So either use also that revision or you need to update the patch.

  3. on 18 Apr 2012 at 15:29 3.Basty said …

    Hi,
    erstmal riesen Dank für das Tutorial. Ist schon ne ganz schöne Sache, rTorrent zum laufen zu bekommen. Hab es auch schonmal hinbekommen, aber als ich es heute nochmal machen wollte kommt ein Fehler beim Versuch den Sourcecode runter zu laden (svn co svn://rakshasa.no/libtorrent/trunk):

    svn: Kann nicht mit Host »rakshasa.no« verbinden: Verbindungsaufbau abgelehnt

    Hast du da vllt eine Lösung parat? Gibts den Sourcecode irgendwo im Netz? Hab ihn bis jetzt noch nicht finden können -.-‘

    Danke und Grüße!
    Basty

  4. on 18 Apr 2012 at 15:48 4.hyper_ch said …

    1. rTorrent ist nun als Git verfügbar und nicht mehr via SVN (glaubhe ich)
    2. Ich komme mit der aktuellen rTorrent Version nicht klar und benutze weiterhin 0.8.9
    3. Ich benutze zwischenzeitlich einen Fork von rTorrent – namentlich https://code.google.com/p/pyroscope/wiki/RtorrentExtended , weil:
    – auch farbiges Interface
    – komprimiertes Interface auf Wunsche (1 Zeile pro Torrent)
    – aktuelle Patches
    – Suche in rTorrent nach Torrents (ctrl-x, s=KEYWORD, [enter])
    – Pyroscope regelmässig in #rtorrent auf irc.freenode.org zu finden ist

    Ich würde empfehlen das zu nehmen.

  5. on 22 Apr 2012 at 13:32 5.Klaus said …

    Gibt es schon eine Lösung bezüglich abgelehntem Verbindungsaufbau?

  6. on 25 Apr 2012 at 10:13 6.hyper_ch said …

    @ Klaus

    Ich weiss nicht was du damit meinst.