Источник статьи -
статья на Хабре. И, хоть с момента написания поста прошло два года, актуальность он не потерял, так что оставлю все "as is" - для себя, чтоб не потерять.
rTorrent — еще один из самых популярных torrent клинтов в мире Unix-подобных операционных систем (о
Transmission я уже
написал несколько ранее). При создании этого клиента, по заявлению
автора, во главе угла стояли «высокая производительность и хороший код», а использование
mmap для
отображения файлов в память позволяет добиться на широкополосных каналах трехкратного преимущества перед
официальным клиентом.
Еще одной характерной чертой rTorrent является наличие множества
различных web-интерфейсов «на все вкусы» для удаленного управления.
Именно об установке и настройке всего этого я и хочу рассказать на этот
раз.
Установка rTorrent
При установке
rTorrent я буду предполагать что все действия производятся в последней версии
Debian (на момент написания статьи 2010-03-27 это Debian
Lenny).
Часто, при использовании этой ОС люди выбирают либо стабильную ветку
ропозиториев, либо тестовую и отличаются они версиями, содержащихся в
них, пакетов. К сожалению, в стабильной ветке находится пакет rtorrent
версии 0.7.9 в то время как новейшая версия уже достигла номера 0.8.6. В
связи с этим, я расскажу об установке новейшей версии rTorrent отдельно
для тестовой, и отдельно для стабильной веток репозиториев.
Установка rTorrent при стабильной ветке репозиториев Debian
В прошлый раз, при
описании установки новейшей версии
Transmission, я воспользовался компиляцией из исходиков что справедливо вызвало
бурю негодований и
критики :) В этот раз я покажу как добиться желаемого результата не прибегая к помощи компилятора.
Все что нам потребуется, так это подключить тестовую ветку репозиториев и
установить из нее свежую версию пакета, но сделать это так, чтобы вся
система в целом (за исключением нашего пакета) осталась на стабильной
ветке. Выполнить эту задачу можно воспользовавшись механизмом «пиннинга»
(не знаю как «pinning» благозвучно переводится на русский) подробнее о
котором можно прочитать в официальной
документации или, к примеру, вот
здесь.
Для этого, в файл
/etc/apt/sources.list
нужно добавить тестовые репозитории:
deb http://ftp.ua.debian.org/debian/ testing main
deb http://security.debian.org/ testing/updates main
Я добавлял украинское зеркало, вы же, выбирайте более подходящее вам в
зависимости от географического положения или личных предпочтений ;)
Следующим шагом создадим файл
/etc/apt/preferences
и зададим в нем приоритеты для репозиториев таким образом, чтобы по-умолчанию выбирались пакеты из стабильной ветки:
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Теперь нужно обновить список доступных пакетов:
# aptitude update
И выполнить установку последней доступной версии rTorrent:
# aptitude -t testing install rtorrent
где опцией "
-t
" мы явно задали использование тестового репозитория для установки данного пакета.
Далее переходим к настройке rTorrent.
Установка rTorrent при тестовой ветке репозиториев Debian

Если же у вас система изначально настроена на использование тестовой
ветки репозиториев, то установка, в вашем случае, сводится всего к одной
команде:
# aptitude install rtorrent
После этого можно переходить к настройке rTorrent.
Настройка rTorrent
Создаем файл с настройками
~/.rtorrent.rc
подобный этому:
# Диапазон рабочих портов torrent клиента.
# Если вы за NAT не забываем "пробросить" порты
port_range = 32001-32049
# Включаем DHT
dht = auto
# UDP порт для DHT
dht_port = 32000
# Обмен пирами
peer_exchange = yes
# Использовать ли UDP трекеры
use_udp_trackers = yes
# Директория в которую по-умолчанию будут загружаться файлы
directory = /arch/.Downloading/
# Глобальные ограничения по скорости
upload_rate = 80
download_rate = 800
# Директория для записи сессий rTorrent
session = /home/username/.rtorrent_session
# Задаем настройки для rpc управления
scgi_port = 127.0.0.1:5000
Создаем папку для хранения сессии rTorrent:
$ mkdir .rtorrent_session
Вообще же, я привел лишь базовые настройки rTorrent. Более подробно о
настройках этого замечательного torrent клиента можно прочитать вот
тут,
тут и
тут.
Настройка автозагрузки rTorrent
Для того, чтобы rTorrent автоматически запускался при старте машины
нужно выполнить несколько несложных действий. Вначале, установим
screen
, необходимый для обеспечения работы torrent клиента в фоне:
# aptitude install screen
Затем загрузим стартовый скрипт:
# cd /etc/init.d/
# wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh
Редактируем файл и указываем имя пользователя от которого будет запускаться rTorrent:
user="user"
Делаем файл исполняемым:
# chmod +x rtorrentInit.sh
Задаем владельцем файла системного пользователя root:
# chown root:root rtorrentInit.sh
Включаем «автозагрузку»:
# update-rc.d rtorrentInit.sh defaults
Все, теперь демон можно запустить выполнив вот такую команду:
# /etc/init.d/rtorrentInit.sh start
Теперь, во время каждой загрузки машины, будет автоматически запускаться и наш torrent клиент.
web-интерфейсы

Для работы web-интерфейсов, как вы уже наверняка догадались, требуется web-сервер. Это может быть как
Apache, так и
Lighttpd,
а, вполне вероятно, и какой-либо другой. Однако, для определенности, я
буду рассматривать все примеры на базе Apache. Если у вас не установлен
web-сервер, то следующий пункт для вас, иначе же — вы волны его просто
пролистать.
Установка Apache
Для установки Apache необходимо выполнить несколько простых команд.
Начнем с установки самого web-сервера и необходимого для удаленного
управления rTorrent модуля
scgi
:
# aptitude install apache2 libapache2-mod-scgi
Задаем настройки модуля в файле
/etc/apache2/httpd.conf
:
SCGIMount /RPC2 127.0.0.1:5000
и включаем его:
# a2enmod scgi
Далее, устанавливаем PHP:
# aptitude install php5 php5-common libapache2-mod-php5 php5-curl
и перезагружаем Apache:
# apache2ctl restart
После установки Apache переходим к рассмотрению различных web-интерфейсов к rTorrent.
wTorrent
Для своей работы
wTorrent требует базу данных
sqlite
. Установим ее:
# aptitude install sqlite3 php5-sqlite
# apache2ctl restart
Теперь загружаем непосредственно сам wTorrent:
# cd /var/www/
# svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
Задаем права доступа для web-сервера:
# chown -R www-data:www-data ./wtorrent/
Далее направляем браузер по адресу
http://<ваш IP адрес>/wtorrent/install.php
и настраиваем аналогично этому скриншоту:

(
Кликни для увеличения)
Обязательно, в целях безопасности, удаляем файл
install.php
:
# rm wtorrent/install.php
А теперь можно и оценить результат перейдя по адресу
http://<ваш IP адрес>/wtorrent/
:

(
Кликни для увеличения)
ruTorrent
Для настройки
ruTorrent скачаем последнюю версию из SVN:
# cd /var/www/
# svn checkout http://rutorrent.googlecode.com/svn/trunk/rutorrent
И зададим права доступа для web-сервера:
# chown -R www-data:www-data ./rutorrent/
Теперь чтобы открыть только что установленный ruTorrent нужно направить браузер по адресу
http://<ваш IP адрес>/rutorrent/
. И вот как он выглядит:

(
Кликни для увеличения)

(
Кликни для увеличения)
Так же не могу не отметить что под ruTorrent существует множество
полезных плагинов заметно расширяющих стандартные возможности. Так, с
помощью плагинов можно реализовать
обработку RSS лент,
учет трафика,
ограничение скоростей по расписанию и многое другое. Полный список плагинов находится
здесь. Я же покажу процесс установки плагина на примере
Tracklabels который будет автоматически добавлять метки в зависимости от трекера закачки.
# cd /var/www/rutorrent/plugins/
# svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
# chown -R www-data:www-data /var/www/rutorrent/plugins/
При этом все остальные плагины добавляются аналогично. А посмотреть на
результат установки плагина можно сразу же после обновления странички в
браузере:

(
Кликни для увеличения)
И еще одной, ну просто восхитительной, задумкой блеснул ruTorrent. А
именно, в нем появляются зачатки многопользовательской работы где
каждому человеку привязан свой экземпляр torrent клиента со своими
собственными, ни от чего не зависящими настройками и ограничениями (к
примеру по скорости). Более детально об этом можно прочитать по
следующей ссылке:
forums.rutorrent.org/index.php?topic=87.0
Другие web-интерфейсы и программы для удаленного управления
На описанных мною web-интерфейсах список вовсе не заканчивается. Их не
так уж и мало создано и разрабатывается. Список самых популярных можно
посмотреть на официальном сайте rTorretn'а:
libtorrent.rakshasa.no/wiki/UtilsList
И снова об автоматизации загрузок
Не забываю снова и снова напомнишь о такой удобной штуке как
автоматизация загрузок ваших любимых сериалов с RSS лент различных
трекеров. И несмотря на то что описанные выше web-интерфейсы имеют либо
встроенные средства для обработки RSS лент (wTorrent), либо расширяются
соответствующими плагинами (ruTorrent) этих средств, к сожалению, не
всегда хватает. Более детально ниже:
- Я уже как-то писал на эту тему вот тут (на примере LostFilm'a) и вот тут (на примере Кинозала). Оба решения реализованы в виде shell команд и основаны на
grep
, wget
, curl
;
- Кроме того, еще один способ автоматизации с помощью FlexGet описывал Alukar вот тут;
- И еще один вариант обработки RSS лент с помощью Yahoo Pipes рассмотрен хаброчеловеком AmoN вот в этом посте.
Так же помощниками в этом вопросе могут стать следующие два замечательных сервиса, уже описанные на Хабре:
tvfёdor и
Kinobaza.tv.
Тюнинг rTorrent при больших нагрузках
Про более тонкие настройки rTorrent при больших нагрузках можно прочитать как на
официальном сайте, так и в комментариях пользователей: