Установка консольного torrent клиента rtorrent с web интерфейсом

Для чего это?

Не знаю как в Ubuntu, но в Debian Squeeze идёт старая версия rtorrent и библиотеки xmlrpc-c, которая нужна для связи клиента с web интерфейсом. Плюс, клиент должен быть скомпилен с этой библиотекой. Я поставил самые свежие пакеты из experemental, но и там rtorrent собран без нужных компонентов. Остаётся один путь - собирать всё руками.

Подготовка

Удаляем всё ненужное и ставим необходимые для компиляции пакеты:
$ sudo aptitude purge rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev
$ sudo aptitude install checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev libsigc++-2.0-dev pkg-config libncurses5-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 ..
$ svn co svn://rakshasa.no/libtorrent/trunk
$ cd trunk
$ cd libtorrent
$ ./autogen.sh
$ ./configure --prefix=/usr
$ make
$ sudo checkinstall -D
$ cd ../rtorrent
$ ./autogen.sh
$ ./configure --with-xmlrpc-c --prefix=/usr
$ make
$ sudo checkinstall -D

Если что-то не компилится, то смотрим ошибки и доставляем нужные компоненты.
Теперь у нас есть рабочий torrent клиент. Пробуем его запустить.
$ rtorrent
После этого должен появится псевдо графический GUI интерфейс.
Выходим из клиента (Ctrl+Q) и продолжаем его настраивать.
Настраиваем клиент по этой статье.
Для взаимодействия клиента с web сервером в файл конфигурации rtorrent (например .rtorrent.rc) добавляем:
scgi_port = localhost:5000

Демонизация клиента

Устанавливаем screen:
$ sudo aptitude install screen
Создаём пользователя rtorrent для запуска клиента от его имени.
Теперь создаём файл /etc/init.d/rtorrentd и пишем туда:

Теперь выполним:
$ sudo update-rc.d rtorrentd defaults
Эта конструкция позволит rtorrent запускаться в фоне при каждом старте системы.
Запускаем клиент
$ sudo /etc/init.d/rtorrent start
$ sudo

Устанавливаем apache

$ sudo aptitude install apache2 php5 mysql-client-5.0 mysql-server-5.0 phpmyadmin libapache2-mod-php5 libapache2-mod-scgi libapache2-mod-auth-mysql php5-mysql
Надо ли настраивать виртуальный хост я не знаю. Я лично какие-то конфиги поменял по этой статье, но пользы от этого не заметил.
В файл apache2.conf добавляем строку
LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
А в файл настройки виртуального хоста
SCGIMount /RPC2 127.0.0.1:5000
Запускаем наш хост с помощью команд a2ensite, a2dissite, a2enmod, a2dismod
$ sudo a2ensite mysite
$ sudo a2enmod rewrite
$ sudo /etc/init.d/apache2 restart

Теперь сервер должен отзываться по виртуальному имени.

Установка RuTorrent

Качаем самую последнюю версию морды из SVN
$ cd /var/www/
$ sudo svn co http://rutorrent.googlecode.com/svn/trunk/rutorrent
$ cd ./rutorrent/plugins/
$ sudo svn co http://rutorrent.googlecode.com/svn/trunk/plugins/plugin-name

Под www здесь понимается корень Вашего веб-сервера.
plugin-name - имя плагина.
По идее, теперь по адресу localhost/rutorrent должен открываться web интерфейс торрент клиента.

Полезные ссылки

rtorrent
rtorrent wiki
rutorrent
Собираем rTorrent из исходников