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)
Throttle U/D: 200/off Rate: 141.6 / 0.0 KiB Listen: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.:xxxxx Bind: xxx.xxx.xxx.xxx [U 3/14] [D 15/0] [H 1/32] [S 6/40/768] [F 4/128]
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* rtorrentLe 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-devMaintenant 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 -p0Les 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.
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. |
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) |
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).
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/rtorrentN'oubliez pas de mettre votre login dans le fichier init:
# sed -i "s/user=\\"user\\"/user=\\"VOTRE_LOGIN_ICI\\"/" /etc/init.d/rtorrentPuis 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 0Mettez votre nom d'utilisateur dans le script en exécutant ceci:
# sed -i "s/user=\\"user\\"/user=\\"VOTRE_LOGIN_ICI\\"/" /etc/rc.d/rtorrentAjoutez 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.