Запись опубликована
в Блоге саратовского админа. Пожалуйста оставляйте свои
комментарии тут.
Для установки обязательно необходимо наличие интернет-соединения, т.к. все пакеты для установки будут скачиваться из инета, но для убунтоводов это уже привычно.
Итак, начнем:
1. создадим новый файл и обзовем его, к примеру, rtorrent_installer.sh
поместим внутрь следующее:
#!/bin/sh
apt-get update && apt-get -y install apache2 php5 php5-cgi php5-cli libapache2-mod-php5 php5-common php5-xmlrpc php5-curl libapache2-mod-scgi curl checkinstall subversion build-essential make autoconf autotools-dev automake libcurl4-openssl-dev libtool libsigc++-2.0-dev pkg-config libncurses5-dev libcppunit-dev screen
mkdir -m 777 $HOME/source_rtorrent
source_dir=$HOME/source_rtorrent
cat << EOF >> /etc/apache2/sites-available/default
ServerName *
ServerAdmin rutorrent@localhost
DocumentRoot /var/www/rutorrent
ServerPath /var/www/rutorrent
Options Indexes FollowSymLinks MultiViews
AllowOverride All
ErrorLog /var/log/apache2/www.rutorrent.log
CustomLog /var/log/apache2/www.rutorrent.log common
EOF
echo "SCGIMount /RPC2 127.0.0.1:5000" >> /etc/apache2/httpd.conf
a2dissite default
a2ensite default
a2enmod scgi
/etc/init.d/apache2 restart
cd $source_dir
wget -P $source_dir
http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz && tar -vxzf libtorrent-0.12.6.tar.gz
wget -P $source_dir
http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz && tar -vxzf rtorrent-0.8.6.tar.gz
svn co
https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced $source_dir/xmlrpc-c
cd $source_dir/xmlrpc-c
./configure --prefix=/usr
make
make install
cd $source_dir/libtorrent-0.12.6
./configure --prefix=/usr
make
make install
cd $source_dir/rtorrent-0.8.6
./autogen.sh
./configure --with-xmlrpc-c --prefix=/usr
make
make install
cd /var/www
svn co
http://rutorrent.googlecode.com/svn/trunk/rutorrent
cd /var/www/rutorrent/plugins
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/cookies
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/create
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/diskspace
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/edit
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/erasedata
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/retrackers
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
svn co
http://rutorrent.googlecode.com/svn/trunk/plugins/trafic
chown -R root: /var/www/rutorrent
chmod -R 777 /var/www/rutorrent
echo "Будете ли вы использовать удаленный доступ к веб-интерфейсу?"
remote_read() {
echo -n "Введите y/n: "
remote_check
}
remote_yes() {
cat << EOF > /var/www/rutorrent/.htaccess
order allow,deny
allow from all
AuthUserFile /var/www/rutorrent/.htpasswd
AuthGroupFile /dev/null
AuthName "Please auth"
AuthType Basic
require valid-user
Satisfy all
EOF
}
remote_no() {
cat << EOF > /var/www/rutorrent/.htaccess
order deny,allow
deny from all
allow from 127.0.0.1
EOF
}
remote_check() {
read ans_remote
case $ans_remote in
y) remote_yes
;;
n) remote_no
;;
*) remote_read
;;
esac
}
remote_read
if [ "$ans_remote" = "y" ]; then
echo "nДоступ к веб-интерфейсу rutorrent будет осуществляться по логину и паролю."
htuser_read() {
echo -n "Введите логин пользователя: "
htuser_check
}
htuser_check() {
read htuser
if [ -z $htuser ]; then
htuser_read
fi
}
htuser_read
htpass_read() {
echo -n "Введите пароль пользователя:"
htpass_check
}
htpass_check() {
stty -echo
read htpass
stty echo
echo ""
if [ -z $htpass ]; then
htpass_read
fi
}
htpass_read
htpasswd -cbs /var/www/rutorrent/.htpasswd $htuser $htpass
fi
down_dir_read() {
echo -n "Укажите папку для закачек: "
down_dir_check
}
down_dir_check() {
read down_dir
if [ -z $down_dir ]; then
down_dir_read
fi
}
down_dir_read
mkdir -m 777 -p $down_dir
mkdir -m 777 -p $HOME/rtorrent/session
cat << EOF > $HOME/.rtorrent.rc
port_range = 6881-6991
port_random = no
check_hash = no
directory = $down_dir
session = $HOME/rtorrent/session
http_proxy =
encryption = allow_incoming,enable_retry
upload_rate = 0
download_rate = 0
min_peers = 1
max_peers = 200
min_peers_seed = 1
max_peers_seed = 200
max_uploads = 400
max_uploads_div = 0
max_downloads_div = 0
max_uploads_global = 1000
max_downloads_global = 1000
enable_trackers = yes
max_file_size = -1
use_udp_trackers = yes
dht = auto
dht_port = 6881
scgi_port = 127.0.0.1:5000
execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php tom &}
EOF
if [ "$ans_remote" = "y" ]; then
cat << EOF > /etc/init.d/rtorrent
#!/bin/sh
ans=$1
case $ans in
start)
/etc/init.d/rtorrentd
;;
stop)
killall -w rtorrent
;;
status)
ps -AF | grep --color=always rtorrent | grep -v grep
;;
adduser)
while [ -z `echo $htuser` ]; do
echo -n "Введите логин пользователя:"
read htuser
echo ""
done
while [ -z `echo $htpass` ]; do
echo -n "Введите пароль пользователя:"
stty -echo
read htpass
stty echo
echo ""
done
htpasswd -bs /var/www/rutorrent/.htpasswd $htuser $htpass
;;
restart)
kill `screen -ls | grep rtorrent | awk -F. '{print $1}'` > /dev/null 2>&1 && /etc/init.d/rtorrentd
;;
*)
echo "Usage: /etc/init.d/rtorrent {start|stop|restart|status|adduser}"
exit 1
;;
esac
EOF
else
cat << EOF > /etc/init.d/rtorrent
#!/bin/sh
ans=$1
case $ans in
start)
/etc/init.d/rtorrentd
;;
stop)
killall -w rtorrent
;;
status)
ps -AF | grep --color=always rtorrent | grep -v grep
;;
restart)
kill `screen -ls | grep rtorrent | awk -F. '{print $1}'` > /dev/null 2>&1 && /etc/init.d/rtorrentd
;;
*)
echo "Usage: /etc/init.d/rtorrent {start|stop|restart|status}"
exit 1
;;
esac
EOF
fi
cat << EOF > /etc/init.d/rtorrentd
#!/bin/sh
screen -A -m -d -S rtorrent /usr/bin/rtorrent -n -o import=$HOME/.rtorrent.rc
EOF
chmod +x /etc/init.d/rtorrent
chmod +x /etc/init.d/rtorrentd
echo "Запускать rtorrent при запуске системы?"
readans2() {
echo -n "Введите y/n: "
ans2_check
}
ans2_yes() {
ln -s /etc/init.d/rtorrentd /etc/rc2.d/S98rtorrentd
}
ans2_no() {
echo ""
}
ans2_check() {
read ans2
case $ans2 in
y)
ans2_yes
;;
n)
ans2_no
;;
*)
readans2
;;
esac
}
readans2
/etc/init.d/rtorrentd
сделаем файл исполняемым
sudo chmod +x rtorrent_installer.sh
2. запускаем инсталляцию
sudo ./rtorrent_installer.sh
и теперь ждём - процесс скачивания, компиляции, установки довольно долгий…
3. теперь примем решение, будем ли мы удаленно управлять нашим торрент-клиентом или нам это не интересно и мы будем только из дому с ним работать
4. если на предыдущий вопрос мы ответили утвердительно, то доступ к веб-интерфейсу управления торрент-клиентом будет запаролен, поэтому на запрос логина вводим логин, на запрос пароля вводим пароль (при вводе символы на экране не отображаются)
5. указываем папку куда по умолчанию сохранять закачки
6. теперь нужно ответить на вопрос хотим ли мы автоматически запускать торрент-клиент при запуске системы или нет
7. теперь можно зайти на веб-интерфейс
http://localhost/rutorrent и если в логе вы не увидели ни одной ошибки, как на скрине ниже, значит все работает как надо!
The End!
ЗЫ: Для управления запуском/остановкой и т.д. используйте
/etc/init.d/rtorrent {start|stop|restart|status|adduser}
Скрипт придумал и наваял
Aluminium//titan, за что ему всяческие респект и увага. Я тут только переправил на актуальную версию.