Установка rTorrent 0.9.2 и ruTorrent 3.4

Больше года назад я описывал установку связки rTorrent и ruTorrent, где rTorrent устанавливался из репозитория, а все шаги установки я попытался максимально упростить. Сегодня мне опять потребовалось установить данную связку, но в этот раз всё получилось намного чище и как-то правильнее.

Поэтому если вам нужно установить rTorrent и ruTorrent в Ubuntu - лучше воспользуйтесь именно этой инструкцией. 🙂

Итак, установим необходимые пакеты:

sudo apt-get install subversion build-essential automake libtool libcppunit-dev libcurl3-dev libsigc++-2.0-dev unzip unrar-free curl libncurses5-dev apache2 php5 php5-cli php5-curl -y

Включим scgi в Apache:

sudo apt-get install libapache2-mod-scgi
sudo ln -s /etc/apache2/mods-available/scgi.load /etc/apache2/mods-enabled/scgi.load

Установим xmlrpc-c:

svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable xmlrpc-c
cd xmlrpc-c
./configure --disable-cplusplus
make
sudo make install

Установим libtorrent:

wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.13.2.tar.gz
tar xvf libtorrent-0.13.2.tar.gz
cd libtorrent-0.13.2/
./autogen.sh
./configure
make
sudo make install

Установка rTorrent

Итак, одна из самых важных частей - установка rTorrent. Он будет предварительно скомпилирован с поддержкой xmlrpc-c.

wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.9.2.tar.gz
tar xvf rtorrent-0.9.2.tar.gz
cd rtorrent-0.9.2/
./autogen.sh
./configure --with-xmlrpc-c
make
sudo make install
sudo ldconfig

Создайте необходимые директории:

mkdir ~/Torrents
mkdir ~/Torrents/.session

Настройка rTorrent с помощью .rtorrent.rc

Теперь займёмся файлом .rtorrent.rc (файл с настройками rtorrent). В начале скачайте его:

cd ~/
wget https://rtgui.googlecode.com/files/.rtorrent.rc

Затем отредактируйте на своё усмотрение:

nano .rtorrent.rc

У меня получилось так:

# Maximum and minimum number of peers to connect to per torrent.
min_peers = 100
max_peers = 1000
 
# Same as above but for seeding completed torrents (-1 = same as downloading)
min_peers_seed = 10
max_peers_seed = 100
 
# Maximum number of simultanious uploads per torrent.
max_uploads = 100
 
# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 0
 
# Default directory to save the downloaded torrents.
directory = /home/sk8er/Torrents
 
# Default session directory. Make sure you don`t run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /home/sk8er/Torrents/.session
 
# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=/Torrents/TorrentFiles/Auto/*.torrent
#schedule = untied_directory,5,5,stop_untied=
 
# Close torrents when diskspace is low. */
#schedule = low_diskspace,5,60,close_low_diskspace=100M
 
# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,stop_on_ratio=200,200M,2000
 
#execute_log = /home/sk8er/.rtorrent.log
 
# When the torrent finishes, it executes "mv -n <base_path> ~/Download/"
# and then sets the destination directory to "~/Download/". (0.7.7+)
#on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,/Torrents/Complete/ ;d.set_directory=/Torrents/Complete/"
 
# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no
 
# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no
 
# Port range to use for listening.
port_range = 55556-55560
 
scgi_port = 127.0.0.1:5000
 
# Start opening ports at a random position within the port range.
port_random = no
 
# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
check_hash = no
 
# Set whetever the client should try to connect to UDP trackers.
use_udp_trackers = yes
 
# Alternative calls to bind and ip that should handle dynamic ip`s.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa
 
# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
encryption = allow_incoming,enable_retry,prefer_plaintext
 
# 
# Do not modify the following parameters unless you know what you`re doing.
#
 
# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10
 
# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100
 
# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10
 
# Max number of files to keep open simultaniously.
#max_open_files = 128
 
# Number of sockets to simultaneously keep open.
#max_open_sockets = 
 
# Example of scheduling commands: Switch between two ip`s every 5
# seconds.
#schedule = "ip_tick1,5,10,ip=torretta"
#schedule = "ip_tick2,10,10,ip=lampedusa"
 
# Remove a scheduled event.
#schedule_remove = "ip_tick1"
 
# Set file permission created with rtorrent (777)
system.umask.set = 0000
 
system.file_allocate.set = yes

Установка ruTorrent

Теперь установим веб-интерфейс ruTorrent для управления торрентами:

wget http://rutorrent.googlecode.com/files/rutorrent-3.4.tar.gz
tar xvf rutorrent-3.4.tar.gz
sudo mv rutorrent /var/www
wget http://rutorrent.googlecode.com/files/plugins-3.4.tar.gz
tar xvf plugins-3.4.tar.gz
sudo mv plugins /var/www/rutorrent
sudo chown -R www-data:www-data /var/www/rutorrent

Немного обезопасим доступ:

sudo a2enmod ssl
sudo a2enmod auth_digest
sudo a2enmod scgi
sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
sudo chmod 600 /etc/apache2/apache.pem
sudo htdigest -c /etc/apache2/passwords seedbox username

Вместо "username" в последней команде вам нужно ввести имя пользователя, затем два раза пароль. Они будут запрашиваться при открытии ruTorrent.

cd /etc/apache2/sites-available/
sudo rm -rf default
sudo wget http://vps6.net/src/default
sudo a2ensite default-ssl
sudo apache2ctl restart

Установим screen:

sudo apt-get install screen -y

Запустим rTorrent:

screen -fa -d -m rtorrent

Настроим rTorrent как сервис:

cd ~/
wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh
sudo mv rtorrentInit.sh /etc/init.d/rtorrent
sudo nano /etc/init.d/rtorrent
sudo chmod 755 /etc/init.d/rtorrent

Во время редактирования файла, найдите строчку user="user", и впишите логин своего пользователя в кавычках.

Добавим rTorrent в автозагрузку:

sudo update-rc.d rtorrent defaults

Команда, чтобы убрать rTorrent из автозагрузки:

sudo update-rc.d -f rtorrent remove

Всё, rTorrent запущен и работает. Можете перейти в ruTorrent по адресу http://ip_сервера/rutorrent.

Рекомендую установить пакеты mediainfo и ffmpeg, они требуются некоторым плагинам:

sudo apt-get install mediainfo ffmpeg -y

Вот и всё.

Denis
2013-03-02 16:38:00
К чему такие трудности? Не проще ли поставить Deluge?
Aleksandr
2013-03-02 19:09:00
Тоже Deluge использую, но...на вкус и цвет...
Ed
2013-03-02 19:36:00
Одного не понимаю зачем вручную компилить? Неужели в репах убунты нет всех этих пакетов?
Egor Baranov
2013-03-02 22:50:00
интересно, даже если в репах нет, то почему автор статьи решил описать весь этот геморойный процесс, вместо того чтобы просто сделать себе и другим приятно и собрать deb-ку?
ВЛ
2013-03-03 18:47:00
С первым вопросом полностью согласен. А насчет второго - есть множество клиентов, кроме Deluge.
solid
2013-03-05 08:27:00
зачем компилить, почему дебку не собрал, deluge лучше... к чему глупые вопросы? компилить затем, что дебки устаревают и зависят от системы, а почему не deluge - у вас оно на headless сервере стоит? даже если да, то там есть лишний webui от deluge, а тут тот же самый web-сервер...
andr325
2013-05-17 17:22:00
СПС за подробный мануал, 5+... таких чётких и правильных инструкций побольше бы... молодца)) P.S. прикрутил к ubuntu server i386 13.04, работает норм
Александр
2013-10-16 00:02:00
Все сделал по ману.Почему не запускается скриптом из /etc/init.d не от рута? Хотя пишет что демон запустился но ни в логах ни в screen -ls ни в процессах не висит. Почему?