Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Скрипт автоматической установки rTorrent + web-ui ruTorrent  (Прочитано 34840 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Aluminium//titan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Наваял скрипт автоматической установки rTorrent клиента с веб-интерейсом из исходников.

Обязательно необходимо наличие интернет соединения, т.к. все пакеты для установки будут скачиваться из инета.

Итак начнем:

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

<VirtualHost *:80>
ServerName *
ServerAdmin rutorrent@localhost
DocumentRoot /var/www/rutorrent
ServerPath /var/www/rutorrent
        <Directory /var/www/rutorrent/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
        </Directory>
ErrorLog /var/log/apache2/www.rutorrent.log
CustomLog /var/log/apache2/www.rutorrent.log common
</VirtualHost>
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 и если в логе вы не увидели ни одной ошибки как на скрине ниже, значит все работает как надо!


УРА!!! Happy End!

===========================

для управления запуском/остановкой и т.д. используйте
/etc/init.d/rtorrent {start|stop|restart|status|adduser}

Пользователь решил продолжить мысль 14 Января 2011, 12:42:55:
подправил скрипт, что б пока не укажешь логин и пароль для доступа к интерфейсу и папку для сохранения закачек скрипт дальше не отработает

Пользователь решил продолжить мысль 14 Января 2011, 21:33:00:
дописал скрипт, что б был выбор будет ли удаленный доступ или нет
« Последнее редактирование: 03 Февраля 2011, 23:07:56 от Aluminium//titan »

Оффлайн Александр Донцов

  • Новичок
  • *
  • Сообщений: 21
  • В трудах подражайте пчелкам
    • Просмотр профиля
    • Православный торрент-трекер
Благодарю за полезный труд!

Сам пользовался transmission + веб-морда его же. В принципе все в нем устраивает, но если rTorrent  позволит сэкономить ресурсы системы, то почему бы и нет...

Кто имеет опыт, скажите велика ли разница в ресурсо-потребляемости между rTorrent  и transmission ?

Оффлайн bagrat1on

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.
 
rtorrent запущен, айпишники и порты одинаковы, порты открыты, хз че такое ><

Пользователь решил продолжить мысль 28 Января 2011, 11:11:57:
Ах да. screen -dr rtorrent посылает в лес вот этим сообщением: There is no screen to be detached matching rtorrent.

Оффлайн Aluminium//titan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
смотри есть ли rtorrent в процессах, смотри нет ли ошибок при запуске, смотри конфиги...

Оффлайн Rollex

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
смотри есть ли rtorrent в процессах, смотри нет ли ошибок при запуске, смотри конфиги...
Следовал строго инструкции в Ubuntu полный 0 ситуация аналогична (Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.), ставил на вмваре rtorrent не запущен при запуске грит что не установлен и не устанавливается

Пользователь решил продолжить мысль 03 Февраля 2011, 07:38:26:
Снёс всё попробовал запустить консоль от root командой sudo -i потом указав путь дал чмоды файлу и запустил его. В итоге ошибка:
rTorrent скомпилирован с некорректной версией библиотеки xmlrpc-c, без поддержки 8-байтовых целых. Версия библиотеки должна быть >= 1.11. Часть функциональности будет недоступна.

Помогите добить этот rtorrent

Пользователь решил продолжить мысль 03 Февраля 2011, 20:25:07:
Снес вмваре, поставил на пк Ubuntu запустил скрит под рутом - всё отлично работает! Спасибо большое!

Пользователь решил продолжить мысль 04 Февраля 2011, 22:46:47:
Расскажите как управлять запущенным процессом rtorrent из консоли, как его остановить и где находится файл /.rtorrent.rc
« Последнее редактирование: 04 Февраля 2011, 22:46:47 от Rollex »

Оффлайн Nikolasha

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Цитировать
Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.
Подскажите как решить

Оффлайн D1ablo

  • Новичок
  • *
  • Сообщений: 25
  • Develop
    • Просмотр профиля
    • D1ablo.ru
Расскажите как управлять запущенным процессом rtorrent из консоли, как его остановить и где находится файл /.rtorrent.rc
Написано же в скрипте $HOME/.rtorrent.rc. В домашнем каталоге короче..

Nikolasha, rtorrent у Вас запущен?

Оффлайн Nikolasha

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
sudo /etc/init.d/rtorrent start
sudo /etc/init.d/rtorrent status
root      2045  2011  0   474   508   1 16:34 pts/0    00:00:00 /bin/sh /etc/init.d/[color=red]rtorrent[/color] status
Судя по красному цвету торрент не запустил и не понятно почему. :(

Оффлайн Rollex

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Тоже работало, переустановил ОС заинсталил как прежде не чего не запускается  :idiot2:

Оффлайн Aluminium//titan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
устанавливал на четыре машины (2xUbuntu Desktop 10.04 x64, Ubuntu Desktop 10.10 x64, Ubuntu Server 10.04 x64) установилось без проблем, а вчера поставил на еще одну машинку под Ubuntu Server 10.04 x64 и веб морда работала только наполовину, немного покопавшись выяснил что по неведомым мне причинам на этой машинке веб-морда не дружит с плагинами Create и Traffic.
У кого веб-морда не выдает ошибок но не отображает всех пунктов меню, поиграйтесь с плагинами.

Оффлайн Diplomnic

  • Любитель
  • *
  • Сообщений: 68
  • Трус не играет в хоккей... и не ставит Linux
    • Просмотр профиля
Отличная работа!
Но, как показывает практика, "составное ПО" (в данном случае - торрент-клиент, веб-сервер, веб-морда) сложно установить, а тем более настроить через скрипт. У кого-то библиотек не хватает, у кого-то -зависимости по другому адресу и т.д.

Думаю, также стоит указать какие порты открыть в iptables, да и диапазон портов я бы сократил и поставил за 30000 (33333-33343 например). До 10000, если я не ошибаюсь, служебные порты, может возникнуть конфликт.
Кроме этого, громоздкий апач можно заменить lighttpd.

Для новичка в линуксе Трансмиссион в этом отношении проще - веб-сервер не нужен, веб-морда - тоже. Запустил демона, указал порт и наслаждайся закачкой/отдачей  :)
Sony Vaio vgn-fw11zru Intel core 2 duo T9400 2.53 GHz (*2)
ATI mobility radeon 3650 256мб 4 Гб ОЗУ
Ubuntu 10.04 LTS Kernel Linux 2.6.32-21 generic

Оффлайн redgy92

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
отличный скрипт)) вручную так и не смог ничего собрать :)
вопрос не в тему, какого *** при добавлении нового трекера в активный торрент он начинает проверку хэша с нуля???? а после проверки работает только 1 трекер...... ???
ах да....и при добавлении нового торрента бессмысленно стало ставить галки на опции(пропустить проверку хэша в частности), они всеравно не работают... :(


в очередной раз огорчился расхваленным рторрентом  :( ухожу обратно на трансмишн
« Последнее редактирование: 12 Февраля 2011, 22:21:58 от redgy92 »
Да хранит вас Ctrl+S!

Оффлайн Diplomnic

  • Любитель
  • *
  • Сообщений: 68
  • Трус не играет в хоккей... и не ставит Linux
    • Просмотр профиля
в очередной раз огорчился расхваленным рторрентом  :( ухожу обратно на трансмишн

Я тоже не понимаю такого культа рторрента...
Sony Vaio vgn-fw11zru Intel core 2 duo T9400 2.53 GHz (*2)
ATI mobility radeon 3650 256мб 4 Гб ОЗУ
Ubuntu 10.04 LTS Kernel Linux 2.6.32-21 generic

Оффлайн redgy92

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Цитировать
sudo /etc/init.d/rtorrent start
sudo /etc/init.d/rtorrent status
root      2045  2011  0   474   508   1 16:34 pts/0    00:00:00 /bin/sh /etc/init.d/rtorrent status
как же исправить то? настройки не менял, до этого все работало......логи пустые.....

UPD: помогает только переустановка через скрипт, и снова все слетает после редактирования .torrent.rc.....
я всего лишь хочу написать port_range = 9000-9000 и dht = no

UPD2:  ;D прочитал мануал на вики и догнал что нужно писать dht = off
а пропуск проверки хэша работает только на 1 торрент, самый первый  *бьюсь ап стену*

ппц...после перезагрузки компа рторрент начал проверять хэш у ВСЕХ раздач  :o чзх


после очередной перезагрузки все слетело опять......rtorrent не запускается :'(


как его выключать правильно? чтоб не слетал и хэш заново не проверял?
« Последнее редактирование: 13 Февраля 2011, 13:39:08 от redgy92 »
Да хранит вас Ctrl+S!

Оффлайн Aluminium//titan

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
я никого не призываю пользоваться рторрентом, сей скрипт я написал для себя (для будущей перестановки оси), потом решил что раз уж есть готовая база то немного допилить до более-менее универсального варианта и выложить людям не составит особого труда.
Для полного чайника, у которого голая ось этот скрипт должен отлично подойти. для попробывать и понять надо оно ему или нет вполне подойдет, кому понравится и захочется разобратся, тот разберется.
порты стандартные делюговские, кому они не нравятся могут в конфиге прописать свой диапазон.
почему апач? как я сказал выше скрипт писал для себя.
кто знает что такое iptables и умеет настраивать, тому не составит труда посмотреть в конфиг и открыть нужные порты.

ппц...после перезагрузки компа рторрент начал проверять хэш у ВСЕХ раздач  :o чзх
файловая система с раздачи не ntfs случаем?

после очередной перезагрузки все слетело опять......rtorrent не запускается :'(
не запускается автоматически или вообще не запускается?

как его выключать правильно? чтоб не слетал и хэш заново не проверял?
по идеи никак, убил демона и все дела

 

Страница сгенерирована за 0.041 секунд. Запросов: 24.