Installer rTorrent depuis les sources
Voici une petit tutoriel sur comment installer rTorrent par la compilation des sources et l’exécuter en tant que daemon.
Préparatifs
rTorrent peut être lancé par tous les utilisateurs, mais il est préférable de ne pas le lancer en tant que root pour des raisons de sécurités évidentes, c’est pour cela que créer un utilisateur uniquement pour rTorrent est recommandé.
Créer l’utilisateur qui exécutera rTorrent :
# adduser rtorrent –home /home/rtorrent/
Installer les dépendances nécessaire à la compilation de rTorrent :
# apt-get install subversion screen libcurl3-dev curl libncurses5-dev libsigc++-2.0-dev
Ici nous installons subversion pour récupérer les sources directement depuis les dépôts. Vous pouvez très bien vous passez de l’installation de subversion et récupérer par vous même les sources des différents composant.
Screen sera nécessaire car rTorrent s’exécute dans le terminal où il a été appelé et si l’on ferme ce terminal, rTorrent s’arrête aussi. Screen permet d’ouvrir des sessions de terminal et de s’en détacher pour les récupérer quand on le souhaite. On aurait pu aussi très bien utiliser Dtach
Compilation de rTorrent avec le module xmlrpc
XLMRPC
cd /tmp svn co http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c cd xmlrpc-c ./configure make make install
libTorrent
cd /home/rtorrent/ wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.9.tar.gz tar xzfv libtorrent-0.12.9.tar.gz cd libtorrent-0.12.9 ./configure make make install
rTorrent
Grâce à la compilation du module xmlrpc qui se trouve par défaut dans /usr/local/bin/, nous allons pouvoir compiler rTorrent avec ce module :
</span></h2> cd /home/rtorrent/ wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.9.tar.gz tar xzfv rtorrent-0.8.9.tar.gz cd rtorrent-0.8.9/ ./configure --with-xmlrpc-c=/usr/local/bin/xmlrpc-c-config make make install
Configuration de rTorrent
Ce fichier de configuration, que nous allons récupérer dans les dépôts de rTorrent, nous permettra d’indiquer nos préférences à rTorrent :
cd /home/rtorrent/ wget http://libtorrent.rakshasa.no/export/1273/trunk/rtorrent/doc/rtorrent.rc mv rtorrent.rc .rtorrent.rc
Pensez à bien le placer dans le home de l’utilisateur qui lancera rTorrent.
Éditer le fichier de configuration comme vous le souhaitez. Je ne vais pas passer tous les paramètres en revue car cela va dépendre beaucoup des ressources dont vous disposez sur votre serveur en terme de CPU et de RAM. Je vous conseille donc de tester plusieurs configurations pour le nombre de slot, de clients ou encore de connexions au peer. Cela dépend vraiment de vos préférences ainsi que de votre utilisation.
nano .rtorrent.rc
Il est vivement conseillé d’activé le cryptage des flux dans rTorrent qui se fait grâce à l’option encryption qui possède les options suivante :
- allow_incoming (autorise les connexions entrantes cryptées)
- try_outgoing (utilise le cryptage pour les connexions sortantes)
- require (désactive les handshakes non cryptés)
- require_RC4 (désactive la transmission en claire après le handshake crypté initial)
- enable_retry (si la connexion initiale sortante échoue, réessayer avec le cryptage activé si il était désactivé ou désactivé s’il était désactivé)
- prefer_plaintext (choisi une transmission en clair quand le pair offre un choix entre une transmission en claire ou une cryptée avec RC4, sinon le RC4 sera utilisé).
Exemple :
encryption = allow_incoming,try_outgoing,require,require_RC4
La transmission sera crypté en entrée et en sortie avec le RC4.
Si, par la suite, vous souhaitez utiliser un front-end (par exemple ruTorrent ou Avalanche-rt) vous devez modifiez la ligne **scgi_port** ou la rajouter si elle n’existe pas pour préciser sur quel port d’écoute rTorrent doit être disponible :
scgi_port = 127.0.0.1:5001
Remarque : si vous utilisez un serveur HTTP comme nginx ou bien lighttpd, cela n’a rien à voir avec le port fast-cgi qu’il utilisera.
Dans le fichier de configuration, sont renseignés deux dossiers pour les téléchargements et pour enregistrer les sessions propres à rTorrent, il vous faut les créer :
mkdir downloads/ mkdir sessions/
Pour finir, attribuez tous les fichiers et les dossiers à l’utilisateur rTorrent :
# chown -R rtorrent:rtorrent /home/rtorrent/
Le script daemon si vous voulez l’automatiser avec les paramètres par défaut start|stop|restart :
nano /etc/init.d/rtorrent
#!/bin/sh -e # chkconfig: 2345 85 15 # description: Start rtorrent ### BEGIN INIT INFO # Provides: rtorrent # Required-Start: $local_fs $network $syslog # Required-Stop: $local_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start rtorrent # Description: Start rtorrent ### END INIT INFO NAME=rtorrent.sh SCRIPTNAME=/etc/init.d/$NAME PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin case $1 in start) echo "Starting rtorrent... " su - rtorrent -c "screen -fn -dmS rtd nice -19 rtorrent" echo "Terminated" ;; stop) if [ "$(ps aux | grep -e '.*rtorrent$' -c)" != 0 ]; then { echo "Shutting down rtorrent... " killall -r "^.*rtorrent$" echo "Terminated" } else { echo "rtorrent not yet started !" echo "Terminated" } fi ;; restart) if [ "$(ps aux | grep -e '.*rtorrent$' -c)" != 0 ]; then { echo "Shutting down rtorrent... " killall -r "^.*rtorrent$" echo "Starting rtorrent... " su - rtorrent -c "screen -fn -dmS rtd nice -19 rtorrent" echo "Terminated" } else { echo "rtorrent not yet started !" echo "Starting rtorrent... " su - rtorrent -c "screen -fn -dmS rtd nice -19 rtorrent" echo "Terminated" } fi ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 exit 2 ;; esac
Ensuite le rendre exécutable :
# chmod +x /etc/init.d/rtorrent
Puis on l’active au démarrage :
# insserve rtorrent
Et voilà rTorrent est prêt, fonctionnel et prêt à être utilisé par un front-end tel que ruTorrent ou bien encore Avalanche-rt.