Когда у меня возникла необходимость установить на сервер, который
находится под управлением Ubuntu 9.04 «Jaunty Jackalope», BitTorent
клиент, то я сразу подумал о rtorrent. Но пока я искал инструкцию по его
настройке (точнее по настройке самого rtorrent, screen и web-интерфейса
к rtorrent) я узнал о том что мой любимый Deluge (которым я пользовался раньше на компьютере с DE GNOME) может работать и в консольном режиме и в режиме с Web-интерфейсом. Меня это заинтересовало.В результате я раскопал официальный сайт Deluge и нашёл на нём инструкцию по установке Deluge на сервер. Всё намного проще, нежели в случае с rtorrent.
1. Для начала я бы порекомендовал обзавестись пакетами, которые понадобятся для работы:
1.sudo
apt-get install g++ make python-all-dev python-all python-dbus
python-gtk2 python-notify python-setuptools librsvg2-common python-xdg
python-support subversion libboost-dev libboost-python-dev
libboost-iostreams-dev libboost-thread-dev libboost-date-time-dev
libboost-filesystem-dev libboost-serialization-dev libssl-dev zlib1g-dev
2. Теперь установим сам Deluge:
1.sudo apt-get install deluge-common deluge-console deluge-core deluge-torrent deluge-webui
3. Нужно создать для него демона, который будет его запускать. Для этого создадим файл /etc/default/deluge-daemon:
1.sudo nano /etc/default/deluge-daemon
Содержимое файла должно быть таким (ВНИМАНИЕ!!! Обязательно замените <username> на имя вашего пользователя в системе!):
1.# Configuration for /etc/init.d/deluge-daemon2. 3.# The init.d script will only run if this variable non-empty.4.DELUGED_USER="<username>" # !!!CHANGE THIS!!!!5. 6.# Should we run at startup?7.RUN_AT_STARTUP="YES"
Для выхода из nano и сохранения файла используйте сочетание Ctrl+x + ответ на вопрос о необходимости сохранения файла.
4. Создадим исполняемый скрипт /etc/init.d/deluge-daemon:
1.sudo nano /etc/init.d/deluge-daemon
Его содержимое должно быть следующим:
001.#!/bin/sh002.### BEGIN INIT INFO003.# Provides: deluge-daemon004.# Required-Start: $local_fs $remote_fs005.# Required-Stop: $local_fs $remote_fs006.# Should-Start: $network007.# Should-Stop: $network008.# Default-Start: 2 3 4 5009.# Default-Stop: 0 1 6010.# Short-Description: Daemonized version of deluge and webui.011.# Description: Starts the deluge daemon with the user specified in012.# /etc/default/deluge-daemon.013.### END INIT INFO014. 015.# Author: Adolfo R. Brandes 016. 017.PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin018.DESC="Deluge Daemon"019.NAME1="deluged"020.NAME2="deluge"021.DAEMON1=/usr/bin/deluged022.DAEMON1_ARGS="-d"023.DAEMON2=/usr/bin/deluge024.DAEMON2_ARGS="-u web"025.PIDFILE1=/var/run/$NAME1.pid026.PIDFILE2=/var/run/$NAME2.pid027.PKGNAME=deluge-daemon028.SCRIPTNAME=/etc/init.d/$PKGNAME029. 030.# Exit if the package is not installed031.[ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0032. 033.# Read configuration variable file if it is present034.[ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME035. 036.# Load the VERBOSE setting and other rcS variables037.[ -f /etc/default/rcS ] && . /etc/default/rcS038. 039.# Define LSB log_* functions.040.# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.041.. /lib/lsb/init-functions042. 043.if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ]044.then045.log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."046.exit 0047.fi048. 049.if [ -z "$DELUGED_USER" ]050.then051.log_warning_msg "Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME."052.exit 0053.fi054. 055.#056.# Function that starts the daemon/service057.#058.do_start()059.{060.# Return061.# 0 if daemon has been started062.# 1 if daemon was already running063.# 2 if daemon could not be started064.start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \065.--chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null066.RETVAL1="$?"067.start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \068.--chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null069.RETVAL2="$?"070.[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 1071. 072.start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \073.--chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON1_ARGS074.RETVAL1="$?"075.sleep 2076.start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \077.--chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON2_ARGS078.RETVAL2="$?"079.[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2080.}081. 082.#083.# Function that stops the daemon/service084.#085.do_stop()086.{087.# Return088.# 0 if daemon has been stopped089.# 1 if daemon was already stopped090.# 2 if daemon could not be stopped091.# other if a failure occurred092. 093.start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2094.RETVAL2="$?"095.start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1096.RETVAL1="$?"097.[ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2098. 099.rm -f $PIDFILE1 $PIDFILE2100. 101.[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1102.}103. 104.case "$1" in105.start)106.[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1"107.do_start108.case "$?" in109.0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;110.2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;111.esac112.;;113.stop)114.[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1"115.do_stop116.case "$?" in117.0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;118.2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;119.esac120.;;121.restart|force-reload)122.log_daemon_msg "Restarting $DESC" "$NAME1"123.do_stop124.case "$?" in125.0|1)126.do_start127.case "$?" in128.0) log_end_msg 0 ;;129.1) log_end_msg 1 ;; # Old process is still running130.*) log_end_msg 1 ;; # Failed to start131.esac132.;;133.*)134.# Failed to stop135.log_end_msg 1136.;;137.esac138.;;139.*)140.echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2141.exit 3142.;;143.esac144. 145.:
5. Разрешим пользователю root исполнять этот скрипт:
1.sudo chmod 755 /etc/init.d/deluge-daemon
6. Добавим выполнение этого скрипта при старте системы:
1.sudo update-rc.d deluge-daemon defaults
7. Теперь осталось либо запустить скрипт
1.sudo /etc/init.d/deluge-daemon start
либо перезапустить сервер
1.sudo shutdown -r now
Всё, программой можно пользоваться обратившись к серверу через
браузер на порт 8112. К примеру, http://198.162.1.25:8112. Пароль
по-умолчанию «deluge».
Web-интерфейс системы очень удобный и продуманный. За сутки работы с ним ошибок и недочётов не обнаружено. Выглядит он вот так:
На мой взгляд установка Deluge в разы проще и понятнее, нежели
установка rtorrent. А так как для моих задач Deluge хватает выше крыши,
то я остановился именно на нём.
P.S.
Если коды скриптов не сработали, то попробуйте взять их с официального сайта с документацией, вдруг при копирование какие-нибудь символы на что-нибудь заменились.
Если коды скриптов не сработали, то попробуйте взять их с официального сайта с документацией, вдруг при копирование какие-нибудь символы на что-нибудь заменились.
Обновление от 20 июля 2009 05:00
Я советую устанавливать deluge не из репозитория Ubuntu, а собирать из SVN разработчиков. Так как версия из SVN стабильнее и у меня намного реже вылетает с ошибкой Segmentation fault (segfault), нежели версия из репозитория.
Я советую устанавливать deluge не из репозитория Ubuntu, а собирать из SVN разработчиков. Так как версия из SVN стабильнее и у меня намного реже вылетает с ошибкой Segmentation fault (segfault), нежели версия из репозитория.
Установка не многим сложнее. Ниже приведу процесс удаления версии установленной из репозитория и установки версии из SVN
1. Удалим имеющийся deluge
1.sudo apt-get remove deluge
2. Удаляем конфигурационные файлы deluge, предварительно сделав копию (на всякий случай, так как в папке ~/.config/deluge/state находится список торентов которые были в deluge до его удаления)
1.cp ~/.config/deluge ~/.config/deluge-backup2.rm -rf ~/.config/deluge
3. Устанавливаем последний стабильный deluge из SVN
1.svn co http://svn.deluge-torrent.org/branches/1.1.0_RC deluge2.cd deluge3.sudo rm -fr /usr/lib/python2.5/site-packages/deluge-1.1*4.python setup.py build5.sudo python setup.py install
Комментариев нет:
Отправить комментарий