rtorrent на FreeBSD

30.06.2009, рубрики: FreeBSD | Теги: , , | 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-морду, читайте в следующей статье.


48 комментариев на запись “rtorrent на FreeBSD”

  1. 1 Дмитрий сказала в 23:55, 03.11.2009:

    Не работает скрипт запуска:

    %/usr/local/etc/rc.d/rtorrent

    /usr/local/etc/rc.d/rtorrent: 29: Syntax error: «&» unexpected

    Копирую точно... Не пойму, что ему не нравится.

  2. 2 silent сказала в 0:23, 04.11.2009:

    Статья обновлена, прочитай ее внимательно еще раз, в тексте найдешь ссылку на скрипт запуска. Попробуй запустить, потом отпишись.

  3. 3 Дмитрий сказала в 0:30, 04.11.2009:

    amule.org: not found

    А так вроде запускается. Спасибо, буду делать дальше.

  4. 4 Денис сказала в 16:30, 07.11.2009:

    скрипт запуска не найден free-pc-help.ru/wp-conten.../06/rtorrent.txt

    Выложите на www.pastie.org

  5. 5 silent сказала в 23:10, 07.11.2009:

    Файл был перезалит, в тексте статьи новая ссылка на него.

  6. 6 pavlo сказала в 12:27, 23.07.2010:

    Вопрос следующего характера:

    FreeNAS основан на FreeBSD, возможно ли заменить трансмишн в нём (установлен по умолчанию) на rtorrent+rutorrent&

    Заранее спасибо

  7. 7 silent сказала в 18:15, 24.07.2010:

    Если есть доступ root. То можете установить любой софт, в том числе ту связку, о которой вы спросили.

  8. 8 pavlo сказала в 14:29, 27.07.2010:

    silent:

    Спасибо, но я нуб в этом, можно ли где-нить пошаговую инструкцию взять?

  9. 9 silent сказала в 14:58, 27.07.2010:

    Как немного будет времени свободного, я попробую на freeNAS установить, и потом напишу как это сделать.

  10. 10 pavlo сказала в 21:29, 27.07.2010:

    Спасибо, жду с нетерпением

  11. 11 pavlo сказала в 18:28, 09.09.2010:

    Извините, но до сих пор не появилось время или всё-таки не смогли разобраться?

    С уважением!

  12. 12 silent сказала в 21:55, 09.09.2010:

    Времени, к сожалению, свободного не так много, работы очень много.

  13. 13 silentransparence сказала в 14:56, 16.08.2011:

    что означает safe_sync

    у меня пишет command «safe_sync» does not exist когда rtorrent запускаю

  14. 14 silent сказала в 15:17, 16.08.2011:

    Закомментируй эту строчку в конфиге и попробуй запустить еще раз.

  15. 15 silentransparence сказала в 15:53, 16.08.2011:

    комментировал выходт другая ошибка

    щас не помню какая точно

    а что вообще означает этот параметр ?

  16. 16 silentransparence сказала в 15:57, 16.08.2011:

    если закоментировать

    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'.


Оставить комментарий