rTorrent: cliente de BitTorrent en modo texto para linux

Con el reciente cierre de Megaupload y el consecuente éxodo de muchos desde la descarga directa a las redes P2P, aprovecho para explicar cómo suelo descargar yo, rescatando una entrada que me rondaba por la cabeza desde hace tiempo.

Habitualmente uso rTorrent (cliente de BitTorrent) desde linux en consola conectándome remotamente por SSH. "Menuda frikada", diréis algunos, y seguramente tendréis razón, pero dejad que me explique.

Para empezar hay que entender unos cuantos conceptos del mundillo del BitTorrent.

Glosario de términos:
Peer
cada uno de los usuarios que tienen un torrent activo, independientemente de que sean leechers o seeders. P2P significa "Peer to peer", es decir, de usuario a usuario.
Leecher
sanguijuela, los que están bajando un fichero. Al mismo tiempo comparten.
Seeder
semilla, alguien que tiene un fichero completo y está compartiéndolo sin bajar ya nada.
Tracker
servidor que facilita la conexión entre peers y que aloja los ficheros .torrent.
Torrent
fichero con información sobre el archivo a descargar. Para poder interpretarlo hace falta un cliente BitTorrent (rTorrent en mi caso).
Ratio
relación entre lo que se comparte (se sube) y lo que se baja. Si subes lo mismo que descargas tendrás un ratio de 1. Si subes el doble de lo que descargas, el ratio será de 2 y si subes la mitad de lo que descargas, tu ratio será de... sí, ¡exacto!: 0.5.

Mucha gente piensa que BitTorrent es muy lento, pero esto se debe a que la gente suele dejar de compartir en cuanto tiene lo que quiere y así te encuentras con que no quedan seeders o hay muy pocos y en cambio leechers hay un montón. De ahí que para conseguir rapidez haya que mirar hacia los trackers privados o limitarse a bajar cosas que estén muy solicitadas y que no lleven mucho tiempo disponibles.

Un tracker privado se diferencia de uno público en que hay que estar registrado para poder descargar. Este registro suele ser por invitación de algún usuario actual. Ahorraos pedir invitaciones en los comentarios, porque actualmente no tengo ninguna. En los trackers privados lo que prima es tener un ratio alto, ya que suelen tener estrictas normas al respecto: ratio mínimo de entre 0.8 y 1.0 y un tiempo mínimo de seedeo (compartición) de 24-96 horas. No cumplir estas normas suele conllevar la expulsión del usuario. En España con nuestras conexiones extremadamente asimétricas (con una mierda de velocidad de subida, hablando en plata) podéis pasar apuros en estos trackers, especialmente si son extranjeros. Para paliar esto mucha gente ha optado por alquilar un servidor remoto (los hay con una velocidad de 100 Mb/s simétricos, por ejemplo) y usarlo para las descargas. Del servidor a casa sería cuestión de bajar por descarga directa o por FTP/sFTP.

Este post, y otros que le seguirán, va a estar orientado a servidores con Ubuntu server 11.10, aunque debería ser igualmente válido para otras versiones de Ubuntu y Debian, quizá con alguna pequeña variación en algunos casos. La razón de esta orientación es que es lo que yo tengo y he probado. Por supuesto, no tiene que ser uno de esos servidores dedicados alquilados, sirve igualmente un ordenador que tengáis en casa, aunque en ese caso quizá sea conveniente cambiar alguna cosa en la configuración, eso ya tendréis que juzgarlo vosotros.

Pero basta ya de cháchara, entremos en faena.

rTorrent 0.8.9 y libTorrent 0.12.9 son las últimas versiones estables a día de hoy. También están disponibles rTorrent 0.9 y libTorrent 0.13, pero son inestables. En cualquier caso, podréis encontrar todas las versiones en http://libtorrent.rakshasa.no/downloads/.

Antes de nada, recomiendo crear una carpeta rtorrent en vuestra home para ir descargando ahí todo lo necesario:

mkdir ~/rtorrent

Descarga e instalación de libTorrent.

cd ~/rtorrent/
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.9.tar.gz
tar -xvf libtorrent-0.12.9.tar.gz
cd libtorrent-0.12.9/
./configure

Es más que posible que el ./configure dé algunos problemas por falta de paquetes, simplemente es cuestión de instalar los que diga que faltan con un:

sudo apt-get install nombre_del_paquete

Y volver a intentarlo. Ver actualización.

Uno de los paquetes necesarios es pkg-config, por tanto si no lo tenéis, lo tendríais que instalar así:

sudo apt-get install pkg-config

Para mí fue especialmente problemático este error:

checking for OPENSSL... no
configure: error: Package requirements (openssl) were not met:

No package 'openssl' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables OPENSSL_CFLAGS
and OPENSSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Así que si a vosotros también os sale, os ahorro la molestia de andar buscando solución y os la doy yo directamente:

sudo apt-get install libssl-dev

Y ahora la parte que menos problemas debería dar, la compilación (que tarda un rato) y la instalación en sí:

make
sudo make install

Descarga e instalación de rTorrent.

cd ~/rtorrent/
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.9.tar.gz
tar -xvf rtorrent-0.8.9.tar.gz
cd rtorrent-0.8.9/

A continuación si se quiere rTorrent con soporte para colores (yo lo recomiendo), hay que bajar y aplicar un parche para ello. Yo el tarball con el parche lo descargué del Arch Linux User Repository:

cd ~/rtorrent/
wget https://aur.archlinux.org/packages/rt/rtorrent-color/rtorrent-color.tar.gz
tar -xvf rtorrent-color.tar.gz
cd rtorrent-color/
cp rtorrent-0.8.9_canvas_color.patch ~/rtorrent/rtorrent-0.8.9/src/
cd ~/rtorrent/rtorrent-0.8.9/
patch -uNp1 -i ~/rtorrent/rtorrent-0.8.9/src/rtorrent-0.8.9_canvas_color.patch

Ahora toca configurar rTorrent, compilarlo e instalarlo:

./configure --libdir=/usr/local/lib
make
sudo make install

Como antes, es posible que al hacer el ./configure falten algunos paquetes que habrá que instalar con un apt-get install (ver actualización). Estos son los errores que me salieron a mí y los paquetes que tuve que instalar:

The ncurses library is required!:

sudo apt-get install libncurses5-dev

No package 'libcurl' found:

sudo apt-get install libcurl4-openssl-dev

Con esto quedaría zanjada la instalación del cliente de BitTorrent, dejo su configuración y uso para el siguiente post, que no debería tardar mucho. Y este es el aspecto que tendría el rTorrent en funcionamiento:

Ventana principal de rTorrent
Ventana principal de rTorrent

Actualización 14-02-2012: como dice eth0 en los comentarios, hay una forma mucho más sencilla y cómoda de resolver las dependencias antes de compilar:

sudo apt-get build-dep nombre_del_paquete_a_compilar
Webs de referencia: