Когда у меня возникла необходимость установить на сервер, который находится под управлением Ubuntu 9.04 «Jaunty Jackalope», BitTorent клиент, то я сразу подумал о rtorrent. Но пока я искал инструкцию по его настройке (точнее по настройке самого rtorrent, screen и web-интерфейса к rtorrent) я узнал о том что мой любимый Deluge (которым я пользовался раньше на компьютере с DE GNOME) может работать и в консольном режиме и в режиме с Web-интерфейсом. Меня это заинтересовало.В результате я раскопал официальный сайт Deluge и нашёл на нём инструкцию по установке Deluge на сервер. Всё намного проще, нежели в случае с rtorrent.
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:
sudo apt-get install deluge-common deluge-console deluge-core deluge-torrent deluge-webui
3. Нужно создать для него демона, который будет его запускать. Для этого создадим файл /etc/default/deluge-daemon:
sudo nano /etc/default/deluge-daemon
Содержимое файла должно быть таким (ВНИМАНИЕ!!! Обязательно замените <username> на имя вашего пользователя в системе!):
# Configuration for /etc/init.d/deluge-daemon # The init.d script will only run if this variable non-empty. DELUGED_USER="<username>" # !!!CHANGE THIS!!!! # Should we run at startup? RUN_AT_STARTUP="YES"
Для выхода из nano и сохранения файла используйте сочетание Ctrl+x + ответ на вопрос о необходимости сохранения файла.
4. Создадим исполняемый скрипт /etc/init.d/deluge-daemon:
sudo nano /etc/init.d/deluge-daemon
Его содержимое должно быть следующим:
#!/bin/sh ### BEGIN INIT INFO # Provides: deluge-daemon # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: $network # Should-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Daemonized version of deluge and webui. # Description: Starts the deluge daemon with the user specified in # /etc/default/deluge-daemon. ### END INIT INFO # Author: Adolfo R. Brandes PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Deluge Daemon" NAME1="deluged" NAME2="deluge" DAEMON1=/usr/bin/deluged DAEMON1_ARGS="-d" DAEMON2=/usr/bin/deluge DAEMON2_ARGS="-u web" PIDFILE1=/var/run/$NAME1.pid PIDFILE2=/var/run/$NAME2.pid PKGNAME=deluge-daemon SCRIPTNAME=/etc/init.d/$PKGNAME # Exit if the package is not installed [ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME # Load the VERBOSE setting and other rcS variables [ -f /etc/default/rcS ] && . /etc/default/rcS # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ] then log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it." exit 0 fi if [ -z "$DELUGED_USER" ] then log_warning_msg "Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME." exit 0 fi # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \ --chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null RETVAL1="$?" start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \ --chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null RETVAL2="$?" [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 1 start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \ --chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON1_ARGS RETVAL1="$?" sleep 2 start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \ --chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON2_ARGS RETVAL2="$?" [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2 RETVAL2="$?" start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1 RETVAL1="$?" [ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2 rm -f $PIDFILE1 $PIDFILE2 [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1 } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME1" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac :
5. Разрешим пользователю root исполнять этот скрипт:
sudo chmod 755 /etc/init.d/deluge-daemon
6. Добавим выполнение этого скрипта при старте системы:
sudo update-rc.d deluge-daemon defaults
7. Теперь осталось либо запустить скрипт
sudo /etc/init.d/deluge-daemon start
либо перезапустить сервер
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), нежели версия из репозитория.
Установка не многим сложнее. Ниже приведу процесс удаления версии установленной из репозитория и установки версии из SVN
1. Удалим имеющийся deluge
sudo apt-get remove deluge
2. Удаляем конфигурационные файлы deluge, предварительно сделав копию (на всякий случай, так как в папке ~/.config/deluge/state находится список торентов которые были в deluge до его удаления)
cp ~/.config/deluge ~/.config/deluge-backup rm -rf ~/.config/deluge
3. Устанавливаем последний стабильный deluge из SVN
svn co http://svn.deluge-torrent.org/branches/1.1.0_RC deluge cd deluge sudo rm -fr /usr/lib/python2.5/site-packages/deluge-1.1* python setup.py build sudo python setup.py install
Я так понимаю, что для его работы необходимо чтобы на сервере и графическая оболочка стояла?
В том-то и дело, что она не нужна! Я же написал: «…может работать и в консольном режиме и в режиме с Web-интерфейсом…»
В конце статьи приведён снимок экрана браузера в котором показан WEB-интерфейс Deluge.
Я и уточнил, при этом Иксы ставятся на сервере или нет? То, что через WEB-интерфейс работает, я вижу… Но вижу также, что через localhost, т.е. на сервере у тебя графика таки стоит?
1. Обращение к localhost не имеет никакого отношения к Иксам, так как это обращение к WEB-серверу.
2. К localhost с сервера можно обратиться при помощи lynx.
3. Непустая папка /etc/X11/ есть на всех серверах под управлением Ubuntu.
На самом деле я не вижу в описанном мной процессе указание на необходимость Иксов. Вышеописанные действия проводились на свежеустановленном сервере. На нём до этого только openssh было установлено.
Понял. Иксы могут поставится в качестве зависимости, но посмотрел щас, вроде ничего особо весомого там не ставится…
Всем привет,
спасибо за статью.
Эх… не получилось. Вот выдает ошибку:
root@rgserv:/etc/default# /etc/init.d/deluge-daemon start
/etc/init.d/deluge-daemon: 34: Syntax error: «&» unexpected
Подскажите пожалуйста. Я уже по несколько раз проверил содержимое файлов. Все как у Вас. А запускаешь и не работает.
Это происходило из-за того что редактор WordPress почему-то дважды заменил символы «&», «<», «>» и некоторые другие на их html-коды. В результате приведённые скрипты перестали быть корректными.
Сейчас всё исправлено и должно работать.
Gurom, спасибо что заметили.
Еще раз ОГРОМНОЕ спасибо автору. У меня все заработало. Сижу смотрю на свой web интерфейс , радуюсь 🙂
Весьма удобная штуковина.
Да, Gurom, вы правы. Как я не старался перенести тексты файлов с сайта разработчиков в неизменном виде, редактор WP это сделать не давал. Но сейчас вроде всё в порядке. Спасибо.
Есть сервер на котором установлен Deluge, сервер располагается не в моей локальной сети и управлять deluge через веб интерфейс проблематично . Нужно настроить что бы deluge брал torrent файлы из определенной папки, скажем torrent.in и ложил скаченные файлы в torren.out. как это сделать через консоль?
Для einomrah. То, что сразу пришло на ум:
1. [text]man deluge[text]
2. Deluge Console UI
3. Отредактировать файл ~/.config/deluge/core.conf. Какой в нём формат используется и как его заполнять наверняка рассказано на форуме Deluge.
+1, управлять Deluge на сервере можно и удаленно, с помощью установленного Deluge с обычным графическим GUI. Делается очень просто в два шага:
1. на сервере в домашней папке пользователя, из под которого запускается Deluge, нужно добавить строку вида user:password (естественно подставить свои значения) в файл ~/.config/deluge/auth .
Через консоль можно выдать команду
echo «username:password» >> ~/.config/deluge/auth
2. На клиентской машине (кстати, Deluge кроссплатформен и потому можно и на Linux и на Windows сделать) в настройках клиента заходите в раздел Интерфейс и убираете галочку «Использовать классический интерфейс». Теперь перезапустите клиент и при первом заходе появится менеджер соединений (также появится аналогичная кнопка на панели), где можно настроить подключение к серверу и спокойно управлять торрентами через GUI.
P.S.: насчет автодобавления — есть такая функция, но ее использование чревато, проще добавить вручную, ИМХО. Ибо когда я добавил так все свои 700 торрентов, я потом не смог у них поменять путь, дабы они заного не закачивались. По каким причинам, я пока не понял, но пришлось добавлять вручную. Кстати, через GUI можно сразу пакетами добавлять, что удобнее, чем в WebUI, где можно только один за раз добавить.
2 Zeboton,
Огромное спасибо. Отличное решение. Я счастлив 🙂
Спасибо за статью.
Установка прошла без проблем, но возник вопрос при входе через Web,
просит ввести пароль, ни один пароль не подходит, пишет «Password is invalid, try again». Пользователь изменен.
В чем может быть проблема и где искать?
Нашел, пароль по умолчанию deluge.
Блин первый раз проделал установку и все заработало, переставил систему, установил все, зпхожу в морду, паролюсь и мне выдает:
NoCoreError : ‘The core proxy is invalid.’
Хэлп товарищи 🙁
Мануал супер, это я видимо туплю…
keper, давайте вы опишете всё более подробно на форуме, а то не очень понятно что именно вы переустановили и какие настройки меняли (меняли ли?).
[b]Zeboton [/b] не не, все нормально, просто устал вчера, с утра все поправил. Спасибо за инструкцию!
К стати, у меня вот например в репозиториях не было этих пакетов, следовательно, если у вас тоже этих пакетов нет, то добавьте в /etc/apt/sources.list в самый конец строчку:
#deluge
deb http://cz.archive.ubuntu.com/ubuntu jaunty main universe
Еще раз спасибо за инструкцию, с Вашего позволения хотел бы ее добавить к себе в лог, естественно с сылкой на источник 🙂
web интерфейс как то не полно все отображает, правда я из репозитариев стваил. но вот что быть с плагином scheduler. Я вообзе ка кто не понял как эти плагины ставить. На оффсайте их всего три. То что поставил из репозитариев… их всего 2! Как то странно с плагинами. Где брать их и как ставить нет никаких иснтрукций…
Обожаю OpenSource! Где ещё можно получить вот такое сообщение об ошибке:
You might have found a bug, or you did something really stupid ;-).
Suddenly the Dungeon collapses!! — You die…
У меня не как не получается поставить веб приложения как оно ставится
@viktor6
Вот ответ на ваш вопрос: http://dev.deluge-torrent.org/wiki/UserGuide/ThinClient#WebUI
Спасибо за инструкцию, и за труд, несколько копипастов и все работает 🙂
к вопросу о «легковесности» данной конструкции..
server:~# aptitude install deluge-common deluge-console deluge-core deluge-torrent deluge-webui
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов… Готово
Чтение описаний задач… Готово
Нет подходящей версии для deluge-core
Нет подходящей версии для deluge-core
Следующие НОВЫЕ пакеты будут установлены:
dbus-x11{a} defoma{a} deluge{a} deluge-common deluge-console
deluge-gtk{a} deluge-torrent deluge-web{a} deluge-webui fontconfig{a}
gconf2{a} gconf2-common{a} hicolor-icon-theme{a} hunspell-en-us{a}
libasound2{a} libatk1.0-0{a} libatk1.0-data{a} libblas3gf{a}
libboost-filesystem1.40.0{a} libboost-python1.40.0{a}
libboost-system1.40.0{a} libboost-thread1.40.0{a} libcairo2{a}
libcroco3{a} libdatrie1{a} libdbus-glib-1-2{a} libdirectfb-1.2-0{a}
libenchant1c2a{a} libffi5{a} libfont-freetype-perl{a} libgconf2-4{a}
libgfortran3{a} libgirepository1.0-0{a} libglade2-0{a} libgsf-1-114{a}
libgsf-1-common{a} libgstreamer0.10-0{a} libgtk2.0-0{a} libgtk2.0-bin{a}
libgtk2.0-common{a} libhunspell-1.2-0{a} libidl0{a} libjasper1{a}
libjpeg62{a} liblapack3gf{a} libmikmod2{a} libnotify1{a} libogg0{a}
liborbit2{a} libpango1.0-0{a} libpango1.0-common{a} libpixman-1-0{a}
libpng12-0{a} librsvg2-2{a} librsvg2-common{a} libsdl-image1.2{a}
libsdl-mixer1.2{a} libsdl-ttf2.0-0{a} libsdl1.2debian{a}
libsdl1.2debian-alsa{a} libsexy2{a} libsmpeg0{a}
libstartup-notification0{a} libsvga1{a} libsysfs2{a} libthai-data{a}
libthai0{a} libtiff4{a} libtorrent-rasterbar5{a} libts-0.0-0{a}
libvoikko1{a} libvorbis0a{a} libvorbisfile3{a} libwnck-common{a}
libwnck22{a} libx86-1{a} libxcb-atom1{a} libxcb-aux0{a} libxcb-event1{a}
libxcb-render-util0{a} libxcb-render0{a} libxcomposite1{a} libxcursor1{a}
libxfont1{a} libxrandr2{a} libxres1{a} notification-daemon{a}
python-beaker{a} python-cairo{a} python-chardet{a} python-glade2{a}
python-gobject{a} python-gtk2{a} python-libtorrent{a} python-mako{a}
python-notify{a} python-numpy{a} python-openssl{a} python-pam{a}
python-pkg-resources{a} python-pygame{a} python-serial{a}
python-simplejson{a} python-sqlalchemy{a} python-twisted-bin{a}
python-twisted-core{a} python-twisted-web{a} python-xdg{a}
python-zope.interface{a} tsconf{a} x-ttcidfont-conf{a}
x11-xserver-utils{a} xdg-utils{a} xfonts-encodings{a} xfonts-utils{a}
0 пакетов обновлено, 115 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 35,6MB архивов. После распаковки 120MB будет занято.
После перезагрузки web-интерфейс отвалился и пишет Not Connected to a daemon.
В чем может быт дело? Помогите.
mvt, вроде же написано понятно — даемон не работает, а значит к нему нельзя подключиться. Или же даемон не работает на том порту, на котором его пытается увидеть WEB-интерфейс.
Доброго времени суток!!!!!
Что то у меня не получилось с установкой web мордочки к нему…. сам делюге заработал в смысле стартанул но подключиться не могу к нему… server у меня 1 машина подключаюсь с другой… соответственно в браузере набираю http://xxx.xxx.xxx.xxx:8112 а в ответ тишина что могет быть плиз подскажите!
Павел, тишина бывает разной. А что говорит, к примеру, ping xxx.xxx.xxx.xxx?
gut!
У меня то-же самое, набираю http://xxx.xxx.xxx.xxx:8112 а в ответ тишина . ping проходит. НА компе установлена mythbuntu. Стоит по той причине, что было под рукой из устанавливаемого через usb-флэшку. Если набрать адрес без порта, то соответственно открывается web-«морда» mythbuntu.
Давайте разбираться. Предлагаю сделать это на форуме в теме Не открывается WEB-интерфейс Deluge (порт 8112).
Здраствуйте. Спасибо за статью.
Но есть два вопроса.
1.Как установить на сервер последнюю версию Deluge 1.3.0 RC1.
2.Почему то Deluge файлы скачивает но не раздает?
Порты все открыты, файервол отключен((
Для casper.
1. установка последней версии программы на старый дистрибутив — это тема для отдельной заметки, так как нужно обновлять библиотеки и удовлетворять прочие зависимости. Какая максимальная версия Deluge для какой версии Ubuntu может быть использована, описано здесь.
2. Может быть никто их просто не качает? Или у вас в настройках Deluge скорость отдачи установлена на 0? Или в настройках скаченных торентов указано что их не нужно раздавать (такое тоже можно сделать)?
super!!!
Spasibo….. stavil 1.3 na 10.4 server kak po maslu !!!!!
Я подключаюсь к демону на сервере через 1.3.5. win32 (удаленное подключение). Как создать торрент через удаленный путь? вводим напр. /var/www/ftp/, размер отображается, нажимаем save, вводим /var/www/ftp и….. тишина. то-ли он путь не видит, то-ли создать торрент файл не может… при указании пути размер папки видит, но хеширование не начинается.
Виталий, первое, что я бы стал проверять — права на доступ к директории и файлам в ней.
Похоже, делюга демон в принципе создавать торренты не умеет. Ни в консоли, ни в вебуях такой команды нет. Есть только в вынь32.
Все вышеописанное проделал, не работает, сервак ubuntu 12.04.1. Делуга не пашет.