Rtorrent и ruTorrent на Ubuntu Server
Ершов Илья
Сервер для загрузки торрентов с web-интерфейсом
11 августа 2010
В связи с большим количеством свободного на работе времени, я озадичился той проблемой, что ночью быстрый интернет в конторе просто простаивает.
«Надо это исправить» — решил я. Чем занять интернетик ночью? Естественно, закачкой торрентов.
Сказано — сделано.
Решил остановиться на связке Rtorrent с ruTorrent и повесить все это дела на apache.
В сети полно сайтов, форумов и просто страниц, где идут бурные обсуждения, как это все настраивать. У одних получается, у других нет. Я решил выложить здесь свой вариант развития событий.
Итак, приступим.
Apache2 у меня уже установлен. Ставил LAMP-сервер.
Ставим нужные пакеты:
sudo apt-get install -y build-essential pkg-config libcurl4-openssl-dev libsigc+±2.0-dev libncurses5-dev subversion libterm-readline-gnu-perl php5-cgi apache2-utils libapache2-mod-scgi
Собираем необходимые пакеты. Ставим из исходников с официального сайта rtorrent —. Пакет xmlrpc-c, необходимый для работы rtorrent с web-интерфейсом, забираем из SVN.
cd /tmp
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar xzvf libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
sudo ./configure —prefix=/usr
sudo make && sudo make install
cd ..
svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
sudo ./configure —prefix=/usr
sudo make && sudo make install
cd ..
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar xzvf rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
sudo ./configure —prefix=/usr —with-xmlrpc-c
sudo make && sudo make install
Добавляем пользователя, от имени которого будет работать rtorrent:
useradd -d /home/rtorrent -m -s /bin/bash rtorrent
passwd rtorrent
Заходим под его логином и создаем необходимые каталоги:
su rtorrent
cd ~
mkdir watch
mkdir sessions
mkdir torrents
exit
Создаем конфигурационный файл для rtorrent:
cp /tmp/rtorrent-0.8.6/doc/rtorrent.rc /home/rtorrent/.rtorrent.rc
chown rtorrent:rtorrent /home/rtorrent/.rtorrent.rc
Редактируем его:
nano /home/rtorrent/.rtorrent.rc
Вот пример моего файла. Главное, чтобы параметр scgi_port был задан как localhost:5000
#минимальное число пиров на торрент
min_peers = 1
#максимальное число пиров на торрент
max_peers = 25
# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
max_peers_seed=5
#максимальная скорость загрузки
download_rate=500
#максимальная скорость отдачи. 0 — не ограничена
upload_rate=20
session = /home/rtorrent/sessions
#каталог для сохранения закачек или откуда буду сидироваться торренты.
directory = /home/rtorrent/torrents/
#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы
#и если они есть то ставит их на закачку
schedule = watch_directory,5,5,load_start=/home/rtorrent/watch/*.torrent
schedule = throttle_0,01:00:00,24:00:00,max_peers_seed=20
#С часа ночи скорость закачки отдачи идет без ограничения
schedule = throttle_2,01:00:00,24:00:00,download_rate=0
#С 10 утра скорость ограничивается
schedule = throttle_4,10:00:00,24:00:00,download_rate=50
#номер порта (или нескольких портов) который открывает клиент для обмена данными
port_range = 40890-40890
#случайный выбор порта для обмена данными
port_random = no
###сохранять сессию
session_save = yes
encryption = allow_incoming,try_outgoing
use_udp_trackers = yes
safe_sync=yes
scgi_port = localhost:5000
encoding_list = UTF-8
Добавляем необходимые для работы модули в apache2:
sudo a2enmod scgi
sudo a2enmod php5
После этого перезапускаем apache2 для применения изменений:
/etc/init.d/apache2 force-reload
Правим файл httpd.conf:
nano /etc/apache2/httpd.conf
Прописываем в нем следующее:
SCGIMount /RPC2 127.0.0.1:5000
Скрипт для автоматического запуска rtorrent возьмем с официального сайта:
wget http://libtorrent.rakshasa.no/attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh?format=raw -O /etc/init.d/rtorrent
Отредактируем его. Указав в параметре user имя созданного нами пользователя (в моем случае rtorrent)
nano /etc/init.d/rtorrent
user="rtorrent"
Добавим скрипт в автозагрузку при старте системы и запустим rtorrent:
chmod 755 /etc/init.d/rtorrent
update-rc.d rtorrent defaults
/etc/init.d/rtorrent start
Переходим к установке rutorrent и настройке. Версию будем забирать из SVN с официального сайта:
cd /var/www
sudo svn checkout http://rutorrent.googlecode.com/svn/trunk/rutorrent
cd rutorrent
chown www-data:www-data share/settings/
chown www-data:www-data share/torrents/
После этого опять перезапускаем apache2:
/etc/init.d/apache2 force-reload
Для входа в web-сервер используем путь http://server_ip/rutorrent
Использованные ресурсы:
1. How To Install rTorrent & ruTorrent on Ubuntu or Debian. Статья про настройку связки rtorrent и rutorrent с использованием lighttpd.
2. Собираем rTorrent из исходников. Собственно, как собрать rTorrent :-)
3. Настройка Apache2 для ruTorrent.
4. Starting rTorrent at system startup.
5. Rtorrent wiki
Молодец! У меня эту связку сразу настроить не получилось.
Поэтому зачёт тебе! Так держать! :-)
Когда наконец-то перестаните тупо перепечатывать с сайта на сайт нерабочие инструкции ?
Rtorrent для убунты 10.04 уже собран с xmlrpc равно как и необходимая ему библиотека libtorrent-0.12.6 подтягивается deb-пакетом при установке rtorrent
Нужно всего лишь дать команду :
“aptitude install rtorrent” .
Собирать из исходников как рекомендуют на сайте рторрента не нужно!!!
Инструкция собственная. Собиралась на Ubuntu Server 8.04
Если на 10.04 все так гладко – я очень рад.
Как думаешь, Pavel, куда я первым делом пошёл, когда озадачился установкой rtorrent? Правильно, на сайт разработчика. И ты предлагаешь не ставить по их рекомендациям? Кому тогда верить? Ну ладно, это вопрос риторический.
Когда у меня сразу не получилось установить, я начал гуглить на этот счет. И о ужас! Сколько инструкций – столько и вариантов установки. Одно (вернее три) только сходство – apt-get install rtorrent/rutorrent и т.п.
Но только большинство инструкций ориентировано на lighttpd, у меня же апач.
В общем после нескольких часов поиска за монитором и попыткой собрать все найденные инструкции в одно целое я сдался (новичок я в линуксе).
И так бы и забил, но хорошо что Ozzy сделал инструкцию просто пошаговую. С её помощью я не просто настроил, но и понял как, где и главное зачем производится конкретная настройка.
Так что отставить. Критика критикой, но инструкция рабочая. За что спасибо Ozzy.
Отличный мануал. Всё заработало. Единственное ± заменил на +- и длинное “-” на короткое “-”.Спасибо Ozzy!
sudo make && sudo make install
make: *** Не заданы цели и не найден make-файл. Останов.???
вместо: sudo make && sudo make install
сделать:
sudo make
sudo make install
Захожу на http://server_ip/rutorrent, вижу картинку http://s57.radikal.ru/i155/1009/57/2982ea61e8da.png, там написано “Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.”. В config.php вроде всё в порядке.
параметр надо проверить в файле .rtorrent.rc в каталоге пользователя, от имени которого rtorrent запускается.
checking for XMLRPC-C… failed
configure: error: Could not compile XMLRPC-C test.
проблемка – debian squeeze
Как ручную можно перезапустить торрент? Можно делать это через интерфейс того же mc ?
Во-первых, Ozzy, спасибо за разжеванную инструкцию по установке связки rtorrent+rutorrent. Всё пашет. И одно дополнение для этой статьи…
В первом большом списке устанавливаемых пакетов не хватает еще один пакет: php5-cli. Он потребуется, когда будете установлены плагины для rutorrent: trafic и, если не путаю, create. Они отказываются работать без указанного установленного пакета.
Еще раз спасибо. Всё работает уже как полгода…
кстати на хабре была статейка “почему не стоит ставить через make && make install, и я с нею согласен.
если хотца свежих версий, то собрать собственный деб не так уж трудно, чего всем ирекомендую! :)
у меня ве заработало с установкой из репозитария