Разные заметки

воскресенье, 12 февраля 2012 г.

Home Server. Часть 7. Установка и настройка Bittorent-клиента.


При создании использовал материалы сайтов:
  1. Собираем rTorrent из исходников 2
  2. Установка и настройка rTorrent в Debian
  3. rutorrent
  4. на всякий случай
Задача:
Без всяких иксов настроить автоматическую работу битторент клиента для раздач и скачивания :)

Почему rtorrent?

rTorrent — еще один из самых популярных torrent клинтов в мире Unix-подобных операционных систем. При создании этого клиента, по заявлению автора, во главе угла стояли «высокая производительность и хороший код», а использование mmap для отображения файлов в память позволяет добиться на широкополосных каналах трехкратного преимущества перед официальным клиентом. Еще одной характерной чертой rTorrent является наличие множества различных web-интерфейсов «на все вкусы» для удаленного управления.
Ну и сам клиент полностью консольный.


1. Установка rTorrent

Первую установку я сделал из репозитариев Debian. В итоге в веб-интерфейсе все размеры файлов более 2Гб отображались отрицательными числами, и web-мордочка говорила об ошибках и ограниченном функционале.

Потому погуглив, решил собрать свежую версию из исходников.
Если в системе уже установлены старые версии – удаляем их:

aptitude purge remove libxmlrpc-core-c3 libxmlrpc-core-c3-dev libxmlrpc-c3 libxmlrpc-c3-dev libtorrent11 libtorrent11-dev rtorrent


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

aptitude install build-essential checkinstall libcurl4-openssl-dev libncurses5-dev libncursesw5-dev libsigc++-2.0-dev libtool


***Следите за версиями пакетов, в будущем они обновятся.
***Установка из svn описана по ссылкам выше

Зависимости потянут за собой еще несколько связанных пакетов. Замечу что категорически рекомендуется помимо libncurses5-dev ставить библиотеку libncursesw5-dev, чтобы в rtorrent могли корректно отображаться пути, содержащие русские буквы.

Подготовка закончена, можно начинать. Собирать буду в папке /usr/src

Стабильные версии xmlrpc-c всегда доступны на Sourceforge здесь. Скачиваем архив с исходниками: xmlrpc-c-1.16.39.tgz и распаковываем. Можно приступать, выполняем в консоли:
cd /usr/src
wget http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Super%20Stable/1.16.39/xmlrpc-c-1.16.39.tgz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxmlrpc-c%2Ffiles%2FXmlrpc-c%2520Super%2520Stable%2F1.16.39%2F&ts=1329042974&use_mirror=ignum

Скачается с офигенным именем, переименуйте в xmlrpc-c-1.16.39.tgz командой mv


tar xvzf xmlrpc-c-1.16.39.tgz
cd xmlrpc-c-1.16.38
./configure --prefix=/usr && make && checkinstall


Первой мы распаковываем архив с исходниками в рабочую папку. Третья – команда конфигурирования, проверяет наличие необходимых для сборки файлов и создает Make-файлы (правила для компиляции). Опция --prefix=/usr указывает куда следует устанавливать скомпилированные файлы. По умолчанию они установятся в каталоги ‘/usr/local/bin’ и ‘/usr/local/lib’, что позволяет иметь одновременно и программу, установленную из репозиториев, и собственноручно собранную. В данном случае скомпилированные бинарники и библиотеки установятся в ‘/usr/bin’ и ‘/usr/lib’ соответственно. Четвертая — команда компиляции и пятая — запускает процесс сборки deb-пакета.

При создании пакета вас попросят добавить описание пакета — тут уж все на ваш вкус. Единственное может появиться ошибка несоответствия версии стандарта deb и версии из исходных текстов. Просто скопируйте версию вида x.x.x из названия tarball’а. В остальном ничего править не обязательно, поэтому смело нажимайте Enter.



2. Теперь приступим к сборке libtorrent.

cd /usr/src
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.9.tar.gz
tar xvzf libtorrent-0.12.9.tar.gz
cd libtorrent-0.12.9
./configure --prefix=/usr --with-posix-fallocate && make && checkinstall

Опция --with-posix-fallocate позволяет избежать фрагментации скачиваемых торрентов путем выделения места на диске сразу под весь объем файла(ов). Что бы включить эту функцию в самой программе добавьте строчку system.file_allocate.set = yes в конфигурационный файл.

3. Собираем rtorrent.
cd ~/src
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.9.tar.gz
tar xvzf rtorrent-0.8.9.tar.gz
cd rtorrent-0.8.9
./configure --prefix=/usr --with-xmlrpc-c && make && checkinstall



После всех манипуляций получаем собранные и установленные пакеты:
dpkg -l | grep xmlrpc
ii  xmlrpc-c                            1.16.39-1                    my-xmlrpc-c-1.16.39
dpkg -l | grep torrent
ii  libtorrent                          0.12.9-1                     libtorrent-0.12.9
ii  rtorrent                            0.8.9-1                      my-rtorrent-0.8.9

4. Устанавливаем web-gui rutorrent.
Устанавливаем Apache:
aptitude install apache2 libapache2-mod-php5 libapache2-mod-scgi

Настройка Apache:
Я ограничил работу web-сервера одним интерфейсом:
nano /etc/apache2/ports.conf
Listen 192.168.0.1:80  ### ваш адрес, порт 80

Включаем модуль scgi
a2enmod scgi

и настраиваем этот модуль:
cat /etc/apache2/mods-enabled/scgi.conf
SCGIMount "/RPC2" 127.0.0.1:5000

Собственно сам rutorrent:
cd /var/www
wget http://rutorrent.googlecode.com/files/rutorrent-3.3.tar.gz
tar xvzf rutorrent-3.3.tar.gz

Цитата отсюда:
Собственно, вся установка проходит под лозунгом "наливай да пей". Необходимо скачать версию и развернуть полученный архив в корень веб-сервера. Делать это лучше из под пользователя, под которым работает собственно веб-сервер. Если это по каким-либо причинам невозможно (например, данный пользователь не имеет доступа к шеллу) - необходимо убедиться, что все файлы ruTorrent доступны пользователю веб-сервера на чтение, а директория rutorrent/share со всем своим содержимым - на чтение и запись. Причем последняя должна так же быть доступна на чтение/запись пользователю, из под которого работает rTorrent. В любом случае, при первой загрузке ruTorrent произведет самодиагностику, и если что не так - он Вам скажет. По крайней мере, должен сказать. ;)
5. Запуск, автозапуск и тестирование.

Есть скрипт управления rtorrent, который запущен в фоне, т.е. в screen.
Если screen не установлен:
aptitude install screen

Скрипт размещаем в /etc/init.d/ и управляем торрент-клиентом как любым другим сервисом, с помощью start, stop, restart

Вот один вариант скрипта: 

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 клиент.

Второй вариант wget http://isudo.ru/files/rTorrent.sh
Установка аналогично первому.

Вот вроде бы и все.


2 комментария:

  1. Произвёл шесть установок подряд по вышеуказанной методике и все шесть закончились неудачей при старте системы, причём при каждой установке разные сообщения об ошибках. В основном преобладают сообщения об ошибках чтения жёстких дисков. Загрузился с USB_HDD и протестировал все диски на наличие ошибок - ошибок нет. Система Debian 7, которая вот уже шестой год прекрасно работает на сервере также ошибок не находит. Для проверки установил на тот же диск в те же разделы, куда ранее устанавливал Debian 9.3, Ubuntu 16.04 server, система запустилась и работает нормально. В режиме с графическим окружением рабочего стола Debian 9 устанавливается и загружается, но имеет такое количество недостатков, что о замене Debian 7 на новую версию не может быть и речи. Даже на домашнем кинотеатре и рабочей станции я предпочитаю устанавливать Ubuntu, и Windows

    ОтветитьУдалить
  2. Сейчас на Debian GNU/Linux 8.8 (jessie) установлен Rakshasa's BitTorrent client version 0.9.6.
    Из исходников. Сервер без gui.
    Все нормально и стабильно работает + скрипт запуска для systemd.
    Я не знаю в чем у вас проблема.

    ОтветитьУдалить