Intrepid's repos only have deluge 0.5. Although it works okay, it is very buggy, and is missing many of the nice features of the new 1.1.5 version. But getting all the features of 1.1.5 working was a hassle, so here's a guide. This will set up Deluge (and FlexRSS) so that the daemon part and the webUI part run on boot. The GTK interface can be run as needed.
1. If you currently have deluge installed, remove it. This will NOT delete your currently running torrents, although you WILL have to reconfigure your preferences. Also, the new FlexRSS will not work with an old FlexRSS config file, so we'll need to get rid of that.
Code:
sudo aptitude remove deluge
sudo mv ~/.config/deluge/flexrss.dat ~/.config/deluge/flexrss.dat.bak
2. Add the PPA repositories to your sources file. If you are using something other than intrepid, this will probably still work, but you will need to change "intrepid" to your distro.
Code:
sudo gedit /etc/apt/sources.list
Add the following two lines:
deb http://ppa.launchpad.net/deluge-team/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/deluge-team/ppa/ubuntu intrepid main
Save the file, then run:
Code:
sudo aptitude update
3. Install the new deluge:
Code:
sudo aptitude install deluge
sudo aptitude install deluge-webui
4. Download the new FlexRSS plugin from
here (direct link
here), and place it in ~/.config/deluge/plugins/. Or, from the command line:
Code:
wget --no-check-certificate -O ~/.config/deluge/plugins/flexRSS-0.1.egg 'https://forum.deluge-torrent.org/download/file.php?id=1165'
5. Fire up Deluge. Set up your settings, and your FlexRSS. You must then configure Deluge to run the daemon and client separately. Edit -> Preferences -> Interface -> UNcheck "Classic Mode Enable". Then shut down deluge.
6. Create a startup script. Directions for how to do this are stolen from
here. To edit the files mentioned, you can use "sudo gedit", like so:
Code:
sudo gedit /etc/default/deluge-daemon
(edit file, save, close)
sudo gedit /etc/init.d/deluge-daemon
(edit file, save, close)
To /etc/default/deluge-daemon, add:
Code:
# 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"
Be sure to replace <username> with your actual user name.
To /etc/init.d/deluge-daemon, add:
Code:
#!/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
:
Finally, set it to be executable, set it to run on boot, and start it up:
Code:
sudo chmod 755 /etc/init.d/deluge-daemon
sudo update-rc.d deluge-daemon defaults
sudo /etc/init.d/deluge-daemon start
All done! The daemon and the web interface are now running, and the GTK client will connect to the daemon when you start it. Note that in the connection manager that comes up when you start the GTK client, you can configure it to auto-connect without prompting you, so it behaves as it did pre-daemon.
To use the WebUI, go to
http://localhost:8112 . The default password is "deluge". Once inside you can change the password, the default port number, and whatever else. Remember to restart if you change the port (sudo /etc/init.d/deluge-daemon restart).
Good luck, and enjoy!
-Kilbasar
Bookmarks