Deluge на nas4free в клетке

Apr 02, 2016 19:01

Торрент клиент Deluge пользуется большой популярностью. Кроме того, torrentmonitor умеет управлять им, наряду с transmission. Я решил потыкать палочкой и поставить Deluge в клетку

Как ставить.

К сожалению, по-простому, через pkg как описано здесь у меня запустить не получилось. Демон запустился, но стал сыпать ошибками. Возможно, дело в том, что по умолчанию он собран с гуем, а в клетке нужен безголовый. Во всяком случае, собранный из портов как описано здесь (с некоторыми правками) запустилось.

1. Создаём клетку, с именем deluge (можно выбрать и другое), не забываем дать ей IP адрес; заходим в её командную строку (см раздел 5.3 в оглавлении), делаем апдейт клетки

2. Устанавливаем гуманоидный редактор. На все вопросы - соглашаемся
root@deluge:/ # pkg install nano

3. Загружаем дерево портов (на пальцах - оглавление, по которому система может найти нужные её исходные коды)
root@deluge:/ # portsnap fetch extract
Эта процедура занимает некоторое время

4. Добавляем в клетку не привилегированного пользователя для deluge. Назовём его deluge из группы deluge. В принципе, в клетке можно и от root гонять - но так - существенно аккуратнее.
root@deluge:/ # adduser
Нам задают ряд вопросов - ответы я дал такие как ниже. Вы можете дать свои. Но особо не креативьте для первого раза. Например - не со всеми шеллами работает.

Username: deluge
Full name: deluge
Uid (Leave empty for default):
Login group [deluge]:
Login group is deluge. Invite delugeinto other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: tcsh
Home directory [/home/deluge]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]: no
Username : deluge
Password :
Full Name : deluge
Uid : 1001
Class :
Groups : deluge
Home : /home/deluge
Home Mode :
Shell : /bin/tcsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (deluge) to the user database.
Add another user? (yes/no): no
Goodbye!

5. Создаём папки для конфигов и для загрузок
root@deluge:/ # mkdir -p /home/deluge/.config/deluge
root@deluge:/ # chown -R deluge:deluge /home/deluge/
root@deluge:/ # mkdir /Downloads
root@deluge:/ # chmod -R 777 /Downloads

6. Устанавливаем сам клиент.
Здесь важно в самом начале отказаться (кнопкой пробел) от опции GTK2 и от IPv6. Остальное можно по умолчанию. Я лично отказывался также от всех документов (DOCS) и примеров (EXAMPLES)
root@deluge:/ # cd /usr/ports/net-p2p/deluge && make WITHOUT_X11=yes install clean

Процедура долгая, кроме того время от времени задаёт вопросы. При большом желании, можно систему все вопросы попросить задать в начале. Для этого надо ДО make install дать make config-recursive несколько раз, пока не перестанет задавать вопросы. Быстрее не будет, но зато перед консолью сидеть не надо.

7. Сохраняем оригинальный конфиг демона вебгуя и создаём новый
root@deluge:/ # cd /usr/local/etc/rc.d
root@deluge:/ # mv deluge_web deluge_web.original
root@deluge:/ # nano delugew

Содержимое - под катом
Но есть потенциальные проблемы.
Во-первых, движок ЖЖ может подгадить и символы поменять. В этом случае берите содержимое отсюда, step 10
Во-вторых, перед тем, как вставлять текст - разаерните окно ssh клиента (putty, видимо) во весь экран. Это убережёт от того, что длинные строки будут порезаны пополам с искажением смысла
[содержимое delugew]
#!/bin/sh
#
# deluge-web RCng startup script
# created by: R.S.A. aka .faust
# mail: rsa dot aka dot f at gmail dot com
#

# PROVIDE: delugew
# REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv
# BEFORE: LOGIN
# KEYWORD: shutdown
# Add the following line to /etc/rc.conf.local or /etc/rc.conf to enable deluge-web at startup
# delugew_enable="YES"
#
# cfg_dir (str): Specify the full path to directory with deluge-web config files
# log (str): Specify the full path to the LOG file
# pidfile (str): Specify the full path to the PID file
# delugew_user (str): Set to user running deluge-web
#
# Warning! Rights to folders and files must be "rwx" for the user under which deluge-web is run
. /etc/rc.subr

name="delugew"
rcvar=`set_rcvar`

load_rc_config $name
delugew_enable=${delugew_enable:=NO}

cfg_dir="/home/deluge/.config/deluge/"
log="${cfg_dir}${name}.log"
pidfile="${cfg_dir}${name}.pid"
delugew_user="deluge"

required_dirs=${cfg_dir}

command_interpreter="/usr/local/bin/python2.7"
command="/usr/local/bin/deluge-web"
start_cmd="${name}_start"
start_postcmd="${name}_poststart"

delugew_start()
{
if [ ! -f "${pidfile}" ]; then
su -m ${delugew_user} -c "/usr/local/bin/deluge-web -f -c ${cfg_dir} -l ${log}"
echo "Starting ${name}."
else
GETPROCESSPID=`/bin/ps -auxw | /usr/bin/awk '/deluge-web/ && !/awk/ && !/sh/ {print $2}'`
PIDFROMFILE=`cat ${pidfile}`
if [ "$GETPROCESSPID" = "$PIDFROMFILE" ]; then
echo "${name} already running with PID: ${PIDFROMFILE} ?"
echo "Remove ${pidfile} manually if needed."
else
rm -f ${pidfile}
su -m ${delugew_user} -c "/usr/local/bin/deluge-web -f -c ${cfg_dir} -l ${log}"
echo "Starting ${name}."
fi
fi
}

delugew_poststart()
{
echo `/bin/ps -auxw | /usr/bin/awk '/deluge-web/ && !/awk/ {print $2}'` > $pidfile
}

run_rc_command "$1"


8. Сохраняем оригинальный конфиг демона deluge и создаём новый - всё аналогично предыдущему пункту
root@deluge:/ # cd /usr/local/etc/rc.d
root@deluge:/ # mv deluged deluged.original
root@deluge:/ # nano deluged

Содержимое deluged
[содержимое deluged]
#!/bin/sh
#
# deluged RCng startup script
# created by: R.S.A. aka .faust
# mail: rsa dot aka dot f at gmail dot com
#

# PROVIDE: deluged
# REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv
# BEFORE: LOGIN
# KEYWORD: shutdown

# Add the following line to /etc/rc.conf.local or /etc/rc.conf to enable deluged at startup
# deluged_enable="YES"
#
# cfg_dir (str): Specify the full path to directory with deluged config files
# log (str): Specify the full path to the LOG file
# loglevel (str): Set loglevel (Available: none, info, warning, error, critical, debug)
# pidfile (str): Specify the full path to the PID file
# deluged_user (str): Set to user running deluged
#
# Warning! Rights to folders and files must be "rwx" for the user under which deluged is run

. /etc/rc.subr

name="deluged"
rcvar=`set_rcvar`

load_rc_config $name
deluged_enable=${deluged_enable:=NO}

cfg_dir="/home/deluge/.config/deluge/"
log="${cfg_dir}${name}.log"
loglevel="error"
pidfile="${cfg_dir}${name}.pid"
deluged_user="deluge"

required_dirs=${cfg_dir}

command_interpreter="/usr/local/bin/python2.7"
command="/usr/local/bin/${name}"
start_cmd="${name}_start"

deluged_start()
{
if [ ! -f "${pidfile}" ]; then
su -m ${deluged_user} -c "/usr/local/bin/${name} -c ${cfg_dir} -L ${loglevel} -l ${log} -P ${pidfile}"
echo "Starting ${name}."
else
GETPROCESSPID=`/bin/ps -auxw | /usr/bin/awk '/deluged/ && !/awk/ && !/sh/ {print $2}'`
PIDFROMFILE=`cat ${pidfile}`
if [ "$GETPROCESSPID" = "$PIDFROMFILE" ]; then
echo "${name} already running with PID: ${PIDFROMFILE} ?"
echo "Remove ${pidfile} manually if needed."
else
rm -f ${pidfile}
su -m ${deluged_user} -c "/usr/local/bin/${name} -c ${cfg_dir} -l ${log} -P ${pidfile}"
echo "Starting ${name}."
fi
fi
}
run_rc_command "$1"


9. Даём права на исполнение обоим демонам
root@deluge:/ # chmod +x delugew
root@deluge:/ # chmod +x deluged

10. Добавляем автоматический старт обоих демонов в /etc/rc.conf
root@deluge:/ # nano /etc/rc.conf
и добавляем в конец файла строки
deluged_enable="YES"
delugew_enable="YES"

11. Стартуем демон
root@deluge:/ # service delugew start

Если ругается - скорее всего повреждены тексты конфигов. Возьмите их не из этого поста, а по ранее приведённой ссылке

12. Идём в вебгуй
В браузере набираем
:8112 - например у меня 192.168.1.63:8112

Дальше всё просто - подключаемся к нашему демону (он в окошке connection manager единственный), пароль по умолчанию deluge (можно сменить), файлы по умолчанию складываются в папку внутри клетки /Downloads (можно сменить)
Можно через fstab подключить другие папки и качать туда.

Я, конечно, запустил для проверки - качает бодро.

торрент, nas, nas4free, качать

Previous post Next post
Up