rtorrent на FreeBSD
30.06.2009, рубрики: FreeBSD | Теги: rtorrent, utorrent, wtorrent | 48 комментариев »Нашел в загашнике старенький компьютер. Решил из него сделать качалку торрентов. Установил диск на 500 Гб. Установил FreeBSD. И так, приступим:
0) Обновляем порты:
1 | portsnap fetch update |
1) Rtorrent ставим из портов:
1 2 3 | cd /usr/ports/net-p2p/rtorrent make config make install clean |
Опция одна, ее и выбираем (XMLRPC).
2) Создаем юзера p2p через sysinstall либо через adduser. Домашняя директория /home/p2p, а оболочка /bin/sh
3) Подготавливаем папки:
1 2 3 4 5 6 7 8 | mkdir /var/torrent mkdir /var/torrent/dl mkdir /var/torrent/work mkdir /var/torrent/session chown p2p /home/p2p chown p2p /var/torrent/dl chown p2p /var/torrent/work chown p2p /var/torrent/session |
4) Правим конфиг:
1 2 | cp /usr/local/share/examples/rtorrent-devel/rtorrent.rc /home/p2p/.rtorrent.rc ee /home/p2p/.rtorrent.rc |
Конфиг должен быть примерно такой (остальные строки закоментены):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | min_peers = 1 max_peers = 100 min_peers_seed = 1 max_peers_seed = 50 download_rate = 1024 upload_rate = 1024 directory = /var/torrent/work session = /var/torrent/session schedule = watch_directory,5,5,load_start=/var/torrent/dl/*.torrent schedule = untied_directory,5,5,stop_untied= schedule = low_diskspace,5,60,close_low_diskspace=1000M port_range = 6890-6999 port_random = no use_udp_trackers = no encryption = allow_incoming,enable_retry,prefer_plaintext dht = auto dht_port = 6881 peer_exchange = yes #Эту строки мы должны добавить scgi_port = localhost:5000 safe_sync = yes encoding_list = UTF-8 |
5) Устанавливаем mod_scgi и настраиваем апач:
1 2 3 | cd /usr/ports/www/mod_scgi make install clean ee /usr/local/etc/apache2/httpd.conf |
Там добавляем такие строки:
1 2 | LoadModule scgi_module libexec/apache2/mod_scgi.so SCGIMount "/RPC2" 127.0.0.1:5000 |
Перезапустим Apache
1 | /usr/local/etc/rc.d/apache2 restart |
6) Ставим screen:
1 2 | cd /usr/ports/sysutils/screen make install clean |
Опции не меняем, оставляем как есть.
7) Дальше создаем скрипт запуска:
1 | ee /usr/local/etc/rc.d/rtorrent |
Содержание такое:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #!/bin/sh # # rtorrent RCng startup script # by Emanuele Cipolla (mail at emanuelecipolla dot net) # Shamelessly ripped off the aMule startup script by Gabriele Cecchetti (amule.org forum) # # PROVIDE: rtorrent # REQUIRE: NETWORKING SERVERS # BEFORE: DAEMON # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable rtorrent at startup # rtorrent (bool): Set to "NO" by default. # Set it to "YES" to enable rtorrent # rtorrent_user (str): Set to user running rtorrent # (default 'p2p') # rtorrent_home (str): Set to home directory of user running rtorrent # (default /home/${rtorrent_user}) . /etc/rc.subr name="rtorrent" rcvar=`set_rcvar` load_rc_config $name [ -z "$rtorrent_enable" ] && rtorrent_enable="NO" [ -z "$rtorrent_user" ] && rtorrent_user="p2p" [ -z "$rtorrent_home" ] && rtorrent_home="/home/${rtorrent_user}" required_dirs=${rtorrent_home} required_files="${rtorrent_home}/.rtorrent.rc" start_cmd="${name}_start" stop_cmd="${name}_stop" rtorrent_start() { if [ ! -f /var/run/${name}.run ] then cd ${rtorrent_home} su ${rtorrent_user} -c "/usr/local/bin/screen -dmS rtorrent_init /usr/local/bin/rtorrent" touch /var/run/${name}.run echo "Started ${name}." echo `date` : "Started ${name}." >> /var/log/${name}.log else echo "${name} seems to be already running -- remove /var/run/${name}.run manually if needed." fi } rtorrent_stop() { if [ -f /var/run/${name}.run ] then killall -INT $(echo -n 'ps aux | grep rtorrent | grep -v rtorrent_init') 2>>/var/log/${name}.log >>/var/log/${name}.log rm -f /var/run/${name}.run echo "Stopped ${name}." echo `date` : "Stopped ${name}." >> /var/log/${name}.log else echo "${name} doesn't seem to be running -- create /var/run/${name}.run if needed." fi } run_rc_command "$1" |
Делаем скрипт исполняемым:
1 | chmod +x /usr/local/etc/rc.d/rtorrent |
Ставим автоматом на запуск, добавив в /etc/rc.conf
1 | rtorrent_enable="YES" |
О том как прикрутить к rtorrent web-морду, читайте в следующей статье.
Не работает скрипт запуска:
%/usr/local/etc/rc.d/rtorrent
/usr/local/etc/rc.d/rtorrent: 29: Syntax error: «&» unexpected
Копирую точно... Не пойму, что ему не нравится.
Статья обновлена, прочитай ее внимательно еще раз, в тексте найдешь ссылку на скрипт запуска. Попробуй запустить, потом отпишись.
amule.org: not found
А так вроде запускается. Спасибо, буду делать дальше.
скрипт запуска не найден free-pc-help.ru/wp-conten.../06/rtorrent.txt
Выложите на www.pastie.org
Файл был перезалит, в тексте статьи новая ссылка на него.
Вопрос следующего характера:
FreeNAS основан на FreeBSD, возможно ли заменить трансмишн в нём (установлен по умолчанию) на rtorrent+rutorrent&
Заранее спасибо
Если есть доступ root. То можете установить любой софт, в том числе ту связку, о которой вы спросили.
silent:
Спасибо, но я нуб в этом, можно ли где-нить пошаговую инструкцию взять?
Как немного будет времени свободного, я попробую на freeNAS установить, и потом напишу как это сделать.
Спасибо, жду с нетерпением
Извините, но до сих пор не появилось время или всё-таки не смогли разобраться?
С уважением!
Времени, к сожалению, свободного не так много, работы очень много.
что означает safe_sync
у меня пишет command «safe_sync» does not exist когда rtorrent запускаю
Закомментируй эту строчку в конфиге и попробуй запустить еще раз.
комментировал выходт другая ошибка
щас не помню какая точно
а что вообще означает этот параметр ?
если закоментировать
XMLRPC initialized with 831 function
The SCGI socket is bound to a specific network device yet may still p
ose a security risk, consider using 'scgi_local'.