четверг, 1 декабря 2011 г.

Установка rtorrent с web-интерфейсом из исходников

Для чего это нужно?
В репозитариях Ubuntu и Debian находятся,мягко говоря,не самые свежие версии rtorrent и библиотеки xmlrpc-c, которая служит для связи клиента с WebUI.К тому же сам клиент должен быть скомпилирован вместе с библиотекой.Поэтому выход один-собрать своими руками из исходников.

После установки из репов, у меня все время в логе ruTorrent было сообщение типа "rTorrent собран с устаревшей библиотекой xmlrpc-c и часть функциональности будет недоступна".Это и вызвало мой интерес к сборке rtorrent из исходников.

Подготовка к установке

Если ранее клиент был установлен-удаляем все

$ sudo apt-get remove rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev

и устанавливаем все необходимые для компиляции и дальнейшей работы пакеты

$ sudo apt-get install checkinstall subversion build-essential make autoconf autotools-dev automake libcurl4-openssl-dev libtool libsigc++-2.0-dev pkg-config libncurses5-dev libcppunit-dev

Получаем, собираем и устанавливаем rtorrent и его компоненты

Получаем исходники из svn, настраиваем их и собираем deb пакеты.

$ svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
$ cd xmlrpc-c
$ ./configure --prefix=/usr
$ make
$ sudo checkinstall -D
$ cd

Далее скачать libtorrent и rtorrent через svn у меня не получилось,поэтому просто скачал и распаковал в домашнюю директорию zip-архивы:

Для libtorrent

Скачиваем:

$ wget https://github.com/rakshasa/libtorrent/zipball/master

Распаковываем

$ unzip master

Переименовываем распакованную папку rakshasa-libtorrent-d5be349 в libtorrent

$ mv rakshasa-libtorrent-d5be349 libtorrent

Удаляем скачанный архив за ненадобностью

$ rm master

Аналогично поступаем и с rtorrent

Скачиваем

$ wget https://github.com/rakshasa/rtorrent/zipball/master

Распаковываем

$ unzip master

Переименовываем распакованную папку rakshasa-rtorrent-d8aa1cd в rtorrent

$ mv rakshasa-rtorrent-d8aa1cd rtorrent

Удаляем скачанный архив за ненадобностью

$ rm master

Все дальнейшие действия выполняем под root-ом

$ cd libtorrent
$ ./autogen.sh
$ ./configure --prefix=/usr
$ make
$ sudo checkinstall -D

При создании deb-пакета будет предупреждение о вводе версии 0.12.9 — нужно ввести обязательно,иначе пакет не соберется.


$ cd rtorrent
$ ./autogen.sh
$ ./configure --with-xmlrpc-c --prefix=/usr
$ make
$ sudo checkinstall -D

При создании deb-пакета будет предупреждение о вводе версии 0.8.9 — нужно ввести обязательно,иначе пакет не соберется.

Если что-то не компилится, то смотрим ошибки в логе и доставляем нужные компоненты (или удаляем конфликтующие). Теперь у нас есть рабочий torrent клиент. Пробуем его запустить.

$ rtorrent


Появится псевдо-графический GUI интерфейс.Корректно выходим из клиента по Ctrl+Q и продолжаем его настраивать.


Настройка rTorrent

Все настройки rtorrent хранятся в файле .rtorrent.rc, но его изначально нет,поэтому создадим его

$ nano ~/.rtorrent.rc

со следующим содержанием

# gui
scgi_port = 127.0.0.1:5000
encoding_list = UTF-8

# Минимальное количество пиров на один торрент (если их будет меньше, программа будет пытаться увеличить их число до заданного)

min_peers = 30
max_peers = 60
min_peers_seed = 10
max_peers_seed = 20

# Максимальное количество активных отдаваемых торрентов
max_uploads = 5

# Максимальные скорости на загрузку и отдачу
download_rate = 400
upload_rate = 60

# Корневая папка для скачиваемых файлов
directory = /fish/torrents
session = /fish/torrents/session

port_range = 6889-6889
port_random = no

check_hash = yes

peer_exchange = yes

check_hash = yes

use_udp_trackers = yes

encryption = allow_incoming,enable_retry,prefer_plaintext

dht = auto

dht.port.set = 32123



Я привел свой конфиг, вы же отредактируйте его под себя

Очень подробно настройка конфигурационнго файла описана здесь

Не забудем создать директорию для хранения сессий:

$ cd /fish/torrents
$ mkdir session




Настройка автозагрузки rTorrent

Чтобы не запускать каждый раз rtorrent вручную настроим его автозагрузку.Сначала установим screen, он нужен для работы rtorrent в фоне:

$ sudo apt-get install screen

Затем загрузим стартовый скрипт с сервера:

$ cd /etc/init.d/
$ wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh

Отредактируем файл,укажем имя пользователя от которого будет запускаться rTorrent:

$ sudo nano rtorrentInit.sh
user="пользователь"

Делаем файл исполняемым:

$ chmod +x rtorrentInit.sh

Зададим владельцем файла системного пользователя root:

$ chown root:root rtorrentInit.sh

И наконец включаем «автозагрузку» при старте машины:

$ update-rc.d rtorrentInit.sh defaults

Запускаем демон в работу командой:

$ /etc/init.d/rtorrentInit.sh start

После этих нехитрых манипуляций rtorrent будет автоматически запускаться при старте компьютера.
Проверить его работу можно следующей командой:

$ screen -dr rtorrent

Для выхода нужно просто набрать Ctrl+A , затем Ctrl+D.


Установка и настройка Apache

Установка Apache проста и не вызывает затруднений.Нужно выполнить лишь несколько простых команд. Модуль scgi нужен для удаленного управления rtorrent,поэтому сразу ставим и его:

$ sudo apt-get install apache2 libapache2-mod-scgi

 В файл apache2.conf добавим строку:

$ sudo nano /etc/apache2/apache2.conf
LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so


Зададим настройки модуля в файле /etc/apache2/httpd.conf:

$ sudo nano /etc/apache2/httpd.conf

впишем строку
 SCGIMount /RPC2 127.0.0.1:5000
сохраним (Ctrl+O) и выйдем (Ctrl+X).

Далее установим php5:

$ sudo apt-get install php5 php5-common libapache2-mod-php5 php5-curl

Примечание: если в качестве веб-морды использовать wTorrent, то необходимо доставить еще и sqlite3 php5-sqlite, они требуются для его работы.

Перезагрузим apache командой:

$ sudo a2enmod rewrite
$ sudo apache2ctl restart

и приступим к установке и настройке web-интерфейса.


Установка и настройка ruTorrent

Очень подробно установка и настройка ruTorrent описана здесь.
Скачаем ruTorrent из SVN:

$ cd /var/www/
$ sudo svn co http://rutorrent.googlecode.com/svn/trunk/rutorrent

Зададим права доступа для web-сервера

$ sudo chown -R www-data:www-data rutorrent

Теперь можно по адресу http://localhost/rutorrent открыть и посмотреть как он выглядит.

Примечание: У меня почему-то сразу не загрузился,написал "нет связи с rtorrent и т.д. и т.п.". Пришлось перезагрузить комп.
У ruTorrent очень много плагинов,посмотреть весь список можно на сайте .

Плагины для ruTorrent устанавливаются аналогично самой морде:

$ cd /var/www/rutorrent/plugins
$ sudo svn co http://rutorrent.googlecode.com/svn/trunk/plugins/имя_плагина


Для себя я установил _getdir и datadir (они взаимосвязаны), create, diskspace, erasedata, chunks, trafic, throttle.
 Выглядеть rtorrent будет так:
Вкладка "Общее"
Вкладка "Файлы"
Вкладка "Трекеры"
Вкладка "Пиры"
Вкладка "Скорость"
Вкладка "Плагины"
Вкладка "Части"
Вкладка "Траффик"

После установки или обновления ruTorrent или плагинов стоит проверить права и при необходимости выполнить:

$ sudo chown -R www-data:www-data /var/www/rutorrent

Если не хочется возится со сборкой rtorrent можно попробовать установить собранные автором пакеты:

xmlrpc-c
libtorrent
rtorrent



Ссылки на основе которых была написана эта статья: 
rtorrent wiki
rutorrent
Установка консольного torrent клиента rtorrent с web интерфейсом

Установка и настройка rTorrent в Debian
Собираем rTorrent + ruTorrent



Комментариев нет:

Отправить комментарий