Installons rTorrent, le tigre du P2P



Après un passage à vide de 2 semaines, je me suis lancé dans une grosse saga de tutoriaux dédiés à rTorrent. Les premiers billets apporteront une approche de rTorrent, avec une description sur comment l'installer, le configurer, et le démoniser.
Plus tard, nous verrons comment mettre en place une interface web pour la gestion à distance, afin de faciliter l'accès au logiciel.

Enfin, nous verrons comment des petites modifications dans le code source peuvent rendre l'engin plus véloce et un poil plus retors avec les trackers.

Pourquoi rTorrent?

J'ai connu rTorrent en 2008, lorsque j'ai commencé à utiliser petit NAS comme d'un micro-home-server. Vu les ressources limitées de ce matériel, j'ai donc dû rechercher des outils très légers pour cet appareil. Comme il m'arrive de télécharger des distributions GNU/Linux en bittorrent (ainsi que d'autres choses), il me fallait un client minimaliste en lignes de commandes si possible, et pas trop dépouillé.

Au fil de mes recherches, je suis tombé sur rTorrent, une application ncurses reposant sur l'utilisation d'une librairie libtorrent issue du même auteur. Débutée en 2005 cette application GPL est en pause en novembre 2009 (oui, j'ai l'art d'utiliser beaucoup de logiciels qui ne sont plus en développement).

Présentation de rTorrent

Comme je vous l'ai expliqué, rTorrent est une application avec une interface ncurse, qui fonctionne entièrement au clavier. Si lancé dans une session screen, dtach ou tmux, vous pouvez le faire fonctionner en arrière plan.

L'interface principale est une fenêtre vous montrant tous les torrents. Il possible de trier la liste par ordre alphabétique, ou bien de les filtrer (ceux qui sont démarrés, stoppé, actifs (l'ensemble des 2), en seed, complétés, incomplets ou en cours de hashage).



A chaque torrent est associé un ensemble de statistiques:
*  ubuntu-5.10-install-i386.iso
* Torrent:  161.6 /  617.2 MB Rate:   1.1 /  41.3 KB Uploaded:     5.1 MB [24%]  0d  3:09 [TI R: 0.03]
*
Elles vous indiquent (dans l'ordre):
  • Torrent: 161.6 / 617.2 MB -> La quantitée de données téléchargées / la taille totale du fichier
  • Rate: 1.1 / 41.3 KB -> Le débit d'envois / le débit de réception
  • Uploaded: 5.1 MB -> La quantité de données envoyées
  • [24%] -> L'avancement du téléchargement en pourcentage
  • 0d 3:09 -> Le temps restant estimé
  • R: 0.03 -> le ratio (qté envoyée / qté téléchargée)
Aussi, vous remarquerez une autre ligne de statistique tout en bas de l'interface.
Throttle U/D: 200/off  Rate: 141.6 /   0.0 KiB  Listen::xxxxx  Bind: xxx.xxx.xxx.xxx  [U 3/14] [D 15/0] [H 1/32] [S 6/40/768] [F 4/128]
Vous y trouverez les limites de débits que vous avez fixé, ainsi que la bande passante globale en téléchargement/envois utilisée. Pour les autres témoins, vous pouvez consulter ce complément de documentation si vous le désirez.

Dans la vue avancée des torrents, vous retrouverez des informations semblables à celles que l'on peut retrouver dans Azureus ou µTorrent. En vrac, on peut y consulter la liste des peers, la liste des fichiers contenus dans le torrent (où on peut désactiver des fichiers ou leur donner une priorité de téléchargement), la liste des trackers hébergeant ce fichier, une vue du fichier sous forme de "morceaux" (chunk seen), ainsi qu'une vue sur les transferts en cours.




Procédons à l'installation

Nous allons installer rTorrent à partir des sources. En effet, le code source sera sujet à diverses modifications dans tous les billets consacrés à rTorrent, je vous recommande donc de les garder dans un coin de votre disque dur.

Commençons par le classique téléchargement des éléments essentiels et la préparation des répertoires
$ wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
$ wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
$ wget http://www.simplylinux.ch/rtorrent/canvas-color.patch
$ tar xf libtorrent*
$ tar xf rtorrent*
$ mv rtorrent* rtorrent
Le dernier élément permet d'appliquer de la couleur dans l'interface principale. Autrement, elle devient vite illisible lorsque vous brassez une douzaine de torrents.

Il vient maintenant le temps d'installer les dépendances (pour ce tutoriel, j'utilise Debian Squeeze):
sudo apt-get install subversion build-essential libtool automake openssl libsigc++-2.0-dev libncurses5-dev libcurl4-openssl-dev
Maintenant compilons libtorrent.
$ cd libtorrent*
$ ./configure; make
# make install
$ cd ..
Puis passons à rtorrent, en prenant soin d'appliquer un patch qui colorisera l'interface ncurses.
$ patch -p0 

Les raccourcis clavier

rTorrent dispose de quelques raccourcis clavier qui vont vous permettre de gérer vos transferts.
Vue principale
droite Montre les infos détaillées du torrent.
+/- Change la priorité du torrent.
l Affiche les logs. Quittez en pressant espace.
1-8 Filtres d'affichage des torrents.
delete Ajoute un torrent via une URL ou un fichier local. Utilisez TAB pour la complétion,
entrer Comme delete, sauf que le torrent reste inactif (Utilisez ^s pour l'activer)
^s Démarre un téléchargement
^d Stoppe un téléchargement, ou supprime un torrent déjà arrêté
q/s/d Augmente la limite d'envois de 1/5/50 KB*.
w/x/c Diminue la limite d'envois de 1/5/50 KB*.
Q/S/D Augmente la limite de réception de 1/5/50 KB*.
W/X/C Diminue la limite de réception de 1/5/50 KB*.

*Je présuppose que vous avez utilisé l'option key_layout = azerty dans votre .rtorrent.rc.

Vue téléchargement
droite Bascule vers la vue sélectionnée
gauche Bascule vers la vue sélection ou retour sur vue principale.
1/2 Ajuste le nombre max de peers en envois.
3/4 Ajuste le nombre min de peers.
5/6 Ajuste le nombre max de peers.
p Affiche la liste des peers.
o Affiche les infos du torrent.
i Affiche la liste des fichiers.
u Affiche la liste des trackers.
t/T Initie une requête vers le tracker (récupération des IP des peers). Utilisez "T" pour forcer la requête, ignorant l'intervalle minimum imposé par le tracker.

La liste des peers
gauche Bascule sur la vue de sélection.
right Montre les détails d'un peer.
* Ignore un peer (stoppe l'envois vers ce peer)
k Kick peer (se déconnecte de ce peer)
B Bannit peer (Pas de débannissement possible)

Liste des fichiers
gauche Bascule sur la vue de sélection.
droite Montre les détails du fichier.
espace Change la priorité du fichier; s'applique récursivement lorsque fait sur un répertoire.
* Change la priorité de tous les fichiers.
/ Replie le répertoire. Lorsque replié, pressez "droite" pour déplier le répertoire sélectionné.

Les options de priorité sont rien: rien (priorité standart), high (haute priorité) et off (ne pas les télécharger).

Liste des trackers
gauche Bascule sur la vue de sélection
* Active/désactive la connection au le tracker

Automatisons tout ça

Sur Debian

Téléchargez le script init sur le site de rTorrent, déplacez-le dans le bon répertoire puis ajoutez le service au démarrage.
$ wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh
# mv rtorrentInit.sh /etc/init.d/rtorrent
N'oubliez pas de mettre votre login dans le fichier init:
# sed -i "s/user=\\"user\\"/user=\\"VOTRE_LOGIN_ICI\\"/" /etc/init.d/rtorrent
Puis démarrons le service.
# update-rc.d rtorrent defaults
# /etc/init.d/rtorrent start

Sur Archlinux

J'ai trouvé cet élément sur le site de Fabien, Avec son accord, je vous redonne son fichier rc à mettre dans votre /etc/rc.d.
# vim /etc/rc.d/rtorrent
#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

user="user"

case "$1" in
 start)
 stat_busy "Starting rtorrent"
 su $user -c 'screen -d -m -S bt rtorrent' &> /dev/null
 if [ $? -gt 0 ]; then
 stat_fail
 else
 add_daemon rtorrent
 stat_done
 fi
 ;;
 stop)
 stat_busy "Stopping rtorrent"
 killall -w -s 2 /usr/bin/rtorrent &> /dev/null
 if [ $? -gt 0 ]; then
 stat_fail
 else
 rm_daemon rtorrent
 stat_done
 fi
 ;;
 restart)
 $0 stop
 sleep 1
 $0 start
 ;;
 *)
 echo "usage: $0 {start|stop|restart}"
esac
exit 0
Mettez votre nom d'utilisateur dans le script en exécutant ceci:
# sed -i "s/user=\\"user\\"/user=\\"VOTRE_LOGIN_ICI\\"/" /etc/rc.d/rtorrent
Ajoutez ensuite rtorrent au démarrage du système.
# vim /etc/rc.conf
DAEMONS=( ... rtorrent ... )

Le mot de la fin

A ce stade, rtorrent est installé et prêt à l'usage, mais il n'est pas configuré. La configuration en elle-même peut être suffisament poussée pour qu'elle fasse l'objet d'un billet qui lui soit dédié.
Voila pourquoi je publie simultanément ce billet ainsi que le 2eme lié à la configuration de rTorrent.

Liens utiles

Vus : 1649
Publié par PPmarcel : 21