rTorrent - jest tekstowym klientem sieci BitTorrent wykorzystującą własną bibliotekę libTorrent. Napisany został w języku C++ a interfejs użytkownika wykorzystuje bibliotekę ncurses. Śmiało można stwierdzić, iż jest to jeden z najlepszych klientów torrent nizależnie od architektury z uwagi na małą zasobożerność systemu jak i na wydajny mechanizm ściągania plików. Dzięki interfejsowi tekstowemu można używać go w programach typu screen i dtach w celu zawieszenia sesji i wylogowwania sie z systemu. Gotowe paczki dostępne są na różne dystrybuje Linuksa więc instalacja jest banlnie prosta. Dla rTorrent-a powstało wiele nakładek graficznych wykorzystujących protokól xml-rpc do sterowania naszym klientem. Możemy je podzielić na aplikacje napisane w języku Java wymagające tylko JRE naprzykład:
i na aplikacje napisane w AJAX/PHP wymagające serwera www np:
Moim zdaniem najlepszym z nich jest paradoksalnie ten ostani. Działa szybko i stabilnie, ma wszytskie funkcje jakich wymagamy od tego typu programów a przy tym subiektywnie jest chyba najładniejszy. Niżej przedstawiony opis zrobiony jest na przykładzie dystrybucji Debian 6 co wiąże się z koniecznością kompilacji kilku pakietów. Powodem takiego stanu jest ostra polityka twórców Debiana dotyczącej wydawania stabilnych pakietów. Najlepszym przykładem może być nginx w wersji 0.7.67 jescze bez wsparcia SCGI, który jest nam niezbędny. Sama konfiguracja rTorrent-a zostanie zmarginalizowana, główny nacisk zostanie położony na skonfigurowanie dla niego GUI.
./configure
make
checkinstall
dpkg -i xmlrpc_c-1_i386.deb
cd libtorrent-0.12.6
./configure
make
checkinstall
dpkg -i libtorrent_0.12.6-1_i386.deb ##instalacja gotowego pakietu (Debian/Ubuntu)
./configure --with-xmlrpc-c
make
checkinstall
dpkg -i rtorrent_0.8.6-1_i386.deb
/configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf \
--pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock \
--user=www-data --group=www-data \
--http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/proxy --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--with-http_ssl_module --with-http_stub_status_module \
--with-debug
make
checkinstall
dpkg -i nginx_1.0.4-1_i386.deb
(17:40:43) Using 'epoll' based polling.
(17:40:43) XMLRPC initialized with 519 functions.
(17:40:43) The SCGI socket is bound to a specific network device yet may still pose a security risk, consider using 'scgi_local'.
# mkdir /var/www/rtg
# cd rutorrent-3.2
# cp * /var/www/rtg
# chown -R www-data:www-data /var/www/rtg
$scgi_port = 5000;
$scgi_host = "127.0.0.1";
server {
listen 80;
server_name rtg.nasz_domena.pl;
if ($host = 'rtg.nasz_domena.pl' ) {
rewrite ^/(.*)$ https://rtg.nasz_domena.pl/$1 permanent;
}
access_log /var/log/nginx/rtg.nasz_domena.pl.access.log;
error_log /var/log/nginx/rtg.nasz_domena.pl.error.log;
}
server{
listen 443;
ssl on;
server_name rtg.nasz_domena.pl;
ssl_certificate /etc/nginx/ssl/rtg.nasz_domena.pl/ssl.crt;
ssl_certificate_key /etc/nginx/ssl/rtg.nasz_domena.pl/ssl.key;
access_log /var/log/nginx/rtg.nasz_domena.pl.access_log;
error_log /var/log/nginx/rtg.nasz_domena.pl.error_log;
location /RPC2 {
include scgi_params;
scgi_pass localhost:5000;
}
location / {
satisfy any; # opcja ta pozwala na dostep bez hasla komputerom zadeklarowanym w dyrektywie allow
root /var/www/rtg;
index index.html;
allow ip.ip.ip.ip;
deny all;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/rtg$fastcgi_script_name;
include fastcgi_params;
}
}
Założenie powyższej kompilacji jest proste: spoza zadeklarowanego adresu IP w dyrektywie allow ip.ip.ip.ip dostęp do naszego WebUI jest możliwy przez podanie loginu i hasła.
Zostaje tylko uruchomić rtorenta i wejśc przez pzeglądarkę http://rtg.nasz_domena. Opis ten nie jest do końca kompletny, brakuje m.in. pełnej konfiguracji rtorenta lub generowania cerytfikatów dla nginx ,naszczęście istnieje wiele poradników dotyczących w/w tematów.