Домашний сервер. Часть пятая, торрентокачалка

Настала пора приобщить мой домашний сервер к бездонной кладези всяких разных полезных и не очень файлов передающихся торрентопутями.

Как я упоминал раньше я мельком попробовал transmission-daemon, не впечатлился (за исключением момента предоставления web-интерфейса своими силами без задейстования стороннних web-сервером), так что ставим rtorrent и вебклиентом rutorrent (очень похож на привычный виндовый utorrent). Делал практически полностью как описано на хабре в посте «Домашний linux сервер своими руками». Но в паре мест поправил под себя и в паре мест прошло не совсем гладко, поэтому позволю себе скопипастить оттуда со своими, так сказать правками.

Установка из репозитариев была отметена сразу, т.к. «родной» пакет был собран без xmlrpc-c который расширяет функционал rutorrent.

Устанавливаем всё что необходимо для компиляции xmlrpc-c, libtorrent, rtorrent

apt-get install checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev libsigc++-2.0-dev pkg-config libncurses5-dev
apt-get remove rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev

Компилируем и «заворачиваем» в .deb пакет xmlrpc-c, libtorrent, rtorrent

Я привык хранить исходники софта ставящего не из репо в /root/soft, так что сначала
cd /root/soft, а потом уж дальше:

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

Тут когда вылезает вот такой диалог:



*****************************************
**** Debian package creation selected ***
*****************************************

Этот пакет был создан с использованием данных значений:

0 — Maintainer: [ root@amorph-hs ]
1 — Summary: [ Package created with checkinstall 1.6.1 ]
2 — Name: [ xmlrpc ]
3 — Version: [ c ]
4 — Release: [ 1 ]
5 — License: [ GPL ]
6 — Group: [ checkinstall ]
7 — Architecture: [ i386 ]
8 — Source location: [ xmlrpc-c ]
9 — Alternate source location: [ ]
10 — Requires: [ ]
11 — Provides: [ xmlrpc ]

Введите номер для изменения параметра или нажмите ВВОД для продолжения:


Обратите внимание на пункт под номером 3, у меня там значением стоит буква «c» и пакет не собирался ругаясь на отсутствие цифры в номере версии. Я заменил на c1 и всё стало ок.

cd ..
wget libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar zxfv libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
./autogen.sh && ./configure --prefix=/usr && make && checkinstall -D

cd ..
wget libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar zxfv rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
./autogen.sh && ./configure —with-xmlrpc-c —prefix=/usr && make && checkinstall -D

К сожалению, rtorrent не умеет работать в режиме daemon, поэтому будем использовать screen

apt-get install screen -y
wget libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh --output-document=/etc/init.d/rtorrent
chmod +x /etc/init.d/rtorrent
sed -i 's/"user"/"torrents"/' /etc/init.d/rtorrent
update-rc.d rtorrent defaults
useradd -d /torrents -m torrents

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

mkdir /torrents/.rtorrent_session

cat >> /torrents/.rtorrent.rc <
port_range = 32001-32049
dht = auto
dht_port = 32000
peer_exchange = yes
use_udp_trackers = yes
directory = /media/mine/media/downloads/
upload_rate = 10
download_rate = 100
session = /torrents/.rtorrent_session
scgi_port = 127.0.0.1:5000
EOF

chown -R torrents:torrents /torrents
/etc/init.d/rtorrent start

Теперь займемся вебмордой rutorrent. Для работы rutorrent необходим вебсервер и интерпретатор php.

apt-get install lighttpd php5-cgi php5-cli php5-curl curl -y
lighty-enable-mod fastcgi
echo 'server.modules += ( "mod_scgi" )' >> /etc/lighttpd/lighttpd.conf
cat >> /etc/lighttpd/lighttpd.conf <
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000,
"check-local" => "disable"
)
)
)
EOF

Плюс добавил в /etc/lighttpd/lighttpd.conf строку для слушания только определенного интерфейса:
server.bind = "192.168.10.101"

/etc/init.d/lighttpd force-reload

Вебсервер готов, теперь будем ставить rutorrent и несколько полезных плагинов к нему.

cd /var/www/
svn checkout http://rutorrent.googlecode.com/svn/trunk/rutorrent
cd /var/www/rutorrent/plugins/
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/cookies
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/autotools
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/erasedata
chown -R www-data:www-data /var/www/

Зайдя по http://192.168.10.101/rutorrent я увидел вебинтерфейс весьма неплохо приближенный у utorrent, а потому привычный и относительно удобный : )

Основной функционал желаемый мною от домашнего сервера на данном этапе получен так что можно расслабиться и поплевывая в потолок лежа на диване пользоваться инетом, смотреть/слушать медиаконтент и размышлять о пользе высоких технологий вообще и о пингвиньих в частности : )

Comments

  1. А чем transmission-deamon должен был впечатлить? Я там никаких принципиальных проблем не увидел.
    По крайней мере таких, чтобы я смирился с запуском rutorrent’а через screen. Это как из пушки по воробъям…

    Posted by northbear

    Link | Июнь 21st, 2010 at 09:00

  2. rtorrent через screen абсолютно не напрягает, запускается сам при загрузке, рестартить если надо, то тоже всё как обычно — /etc/init.d/rtorrent restart. Никаких проблем, просто не вижу с чем тут смирятся. Ни воробьев ни пушки нет : )

    Posted by Amorph

    Link | Июнь 21st, 2010 at 09:04

  3. Трансмишен жрёт больше памяти и тупит больше чем рторрент

    Posted by Sov1et

    Link | Июнь 21st, 2010 at 09:59

  4. > Трансмишен жрёт больше памяти и тупит
    > больше чем рторрент
    Во первых, для руторента надо вдуплить вебсервак и огроменный пых, которые тоже памяти сожрут мама не горюй. А в трансмиссии мелкий демон и вебморду рисует.

    Во вторых, трансмиссия умеет качать магнет-ссылки. А rtorrent + rutorrent этому уже обучили?

    В третьих трансмиссия ставится намного проще, компилить ее самолично в убунте текущей версии можно только из эстетических соображений, она и так там свежая.

    В четвертых — а можно где-то посмотреть сравнение памяти на одном и том же наборе торрентов с более-менее одинаковым состоянием стаи?

    Posted by Jonh Smith VII

    Link | Июнь 22nd, 2010 at 18:05

  5. У меня rtorrent конкретно медлил, а transmission просто летит сравнительно.

    И да, надо кучу всего ставить для rtorrent+rutorrent, и все это жрет ох как много.

    http://blog.arstan.ru/proschyaj-rtorrent-privet-transmission/

    Posted by myschyk

    Link | Июнь 30th, 2010 at 18:31

  6. Обновил libtorrent до 0.12.7. Сразу не захотел собираться, решилось установкой пакета libcppunit-dev. А также rtorrent до 0.8.7.

    Posted by Amorph

    Link | Октябрь 31st, 2010 at 19:52

Leave Your Comment