Ubuntu 9.10 rTorrent + ruTorrent

Мар
13

Для ubuntu 9.10 Karmic Kola

sudo apt-get install  build-dep apache2.2-common apache2-utils autoconf automake autotools-dev binutils build-essential bzip2 ca-certificates 
comerr-dev cpp cpp-4.1 dpkg-dev file g++ g++-4.1 gawk gcc gcc-4.1 libapache2-mod-php5 libapr1 libaprutil1 libc6-dev libcurl3 libcurl4-openssl-dev
 libexpat1 libidn11 libidn11-dev libkdb5-4 libkrb5-dev libmagic1 libncurses5-dev libneon26 libpcre3 libpq5 libsigc++-2.0-dev libsqlite0 
libsqlite3-0 libssl-dev libssp0-dev libstdc++6-4.1-dev libsvn1 libtool libxml2 lighttpd linux-libc-dev lynx m4 make mime-support ntp ntpdate 
openssl patch perl perl-modules php5 php5-cgi php5-common php5-sqlite php5-cli pkg-config screen sqlite subversion ucf zlib1g-dev php5-xmlrpc 
libapache2-mod-scgi

Редактируем апач

sudo nano /etc/apache2/sites-enabled/000-default

Добавляем после “< /VirtualHost >”

LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000

Перезапускаем апач

sudo /etc/init.d/apache2 restart

Качаем рторрент из свн:

svn co svn://rakshasa.no/libtorrent/trunk/libtorrent
svn co svn://rakshasa.no/libtorrent/trunk/rtorrent

или просто качаем архив

wget _http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.5.tar.gz
wget _http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.5.tar.gz

Распаковываем архив

tar -xvzf libtorrent-0.12.5.tar.gz
tar -xvzf rtorrent-0.8.5.tar.gz
rm *.tar.gz

качаем xmlrpc-c

svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced/

Собираем xmlrpc

cd advanced
./configure –disable-cplusplus
make
sudo make install

Собираем libtorrent

cd <to libtorrent directory>
./autogen.sh
./configure –prefix=/usr
make
sudo make install

Собираем rtorrent

cd <to rtorrent directory>
./autogen.sh
./configure –with-xmlrpc-c

Если в выводу видем:

# make sure you see “checking for XMLRPC…. OK” near the end of the outputted text”

то поддержка xmlrpc установлена, иначе ищем ошибки описанные в конце статьи

дособираем рторрент

make
sudo make install

Запускаем rtorrent

sudo ldconfig

Далее ставим веб-морду rutorrent:

cd /var/www/
sudo wget <a href="http://rutorrent.googlecode.com/files/rutorrent-2.9.tar.gz<br />
sudo" title="http://rutorrent.googlecode.com/files/rutorrent-2.9.tar.gz<br />
sudo">http://rutorrent.googlecode.com/files/rutorrent-2.9.tar.gz<br />
sudo</a> tar -xvzf rutorrent-2.9.tar.gz
sudo rm *.tar.gz
sudo chmod 777 rutorrent

настраиваем конфиг rtorrent

cd ~
nano .rtorrent.rc

#This s is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.
# Maximum and minimum number of peers to connect to per torrent.
min_peers = 40
max_peers = 300
# Same as above but for seeding completed torrents (-1 = same as downloading)
min_peers_seed = 10
max_peers_seed = 350
# Maximum number of simultanious uploads per torrent.
max_uploads = 15
# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 10000
upload_rate = 15000
# Default directory to save the downloaded torrents.
directory = /home/admin/downloads
# 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/admin/.session
# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,5,5,load_start=/home/admin/torrents/*.torrent
#schedule = untied_directory,5,5,stop_untied=
# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=500M
# 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
# 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 = 62788-62900
scgi_port = localhost: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
# encryption = allow_incoming,try_outgoing
# 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 = 64
# Interval between attempts to check the hash, in milliseconds.
hash_interval = 2
# 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 = 2
# Max number of files to keep open simultaniously.
max_open_files = 256
# Number of sockets to simultaneously keep open.
#max_open_sockets = <no default>
# 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"
dht = disable
max_memory_usage = 800M

Создаем папки и даем права на них

mkdir download
mkdir torrent
mkdir .session
 
chmod 777 download
chmod 777 torrent
chmod 777 .sesson

Зупаскаем скрипт и сам рторрент

screen rtorrent
rtorrent

Если при сборке rtoorent выкидывает ошибки и не компилится с поддержкой xmlrpc то делаем:

sudo apt-get remove libtorrent7 --purge
sudo apt-get remove rtorrent --purge
sudo apt-get remove libxmlrpc-c3-dev --purge

далее в папке с исходниками рторрент
make clean
sudo ldconfig

и далее с самого начала статьи.