Al igual que con amule los repositorios de debian Lenny no tienen la última versión y a menos que usemos la versión de pruebas Squeeze lo mejor será instalar transmission por nuestra cuenta, para ello tendremos que bajar el código fuente y compilarlo, aunque en realidad no es muy complicado y se verá paso a paso como hacerlo.
El primer paso es instalar las dependencias y lo necesario para compilar el código fuente, necesitaremos versiones más modernas de alguna librería de las que vienen en los repositorios normales de Lenny, en este caso vamos a añadir el repositorio backports en el cual se compilan paquetes de la versión de pruebas y a veces de la inestable para que funcionen sin problemas en la estable, primero editamos el fichero siguiente:
nano /etc/apt/sources.list
Tenemos que añadir la linea que os pongo a continuación:
deb http://backports.debian.org/debian-backports lenny-backports main
El repositorio backport no es usado por defecto, normalmente tenemos que forzar a aptitude a que lo use, para ello hay dos maneras, la primera implica al usar "aptitude install" añadir la opción "-t lenny-backports" para que mire en los backports, pero nosotros vamos a usar "pinning" con ello para los paquetes que configuremos siempre se usaran los backports de manera transparente, tenemos que editar el fichero siguiente:
nano /etc/apt/preferences
Y añadir las siguientes líneas:
Package: libevent
Pin: release a=lenny-backports
Pin-Priority: 999
Package: libevent-dev
Pin: release a=lenny-backports
Pin-Priority: 999
Ahora ya podemos instalar los paquetes normalmente y las actualizaciones de los mismos funcionarán de manera transparente:
aptitude update
aptitude install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libglib2.0-dev libevent-dev
Una vez tengamos eso listo hay que descargar y descomprimir el código fuente, la última versión estable en el momento de escribir esta guía es la 2.04:
cd /usr/src/
wget http://download.transmissionbt.com/files/transmission-2.04.tar.bz2
tar xjf transmission-2.04.tar.bz2
cd transmission-2.04
Para compilar casi todos los programas de linux se hace con los mismos pasos, por seguridad lo ideal es ejecutar la configuración inicial (./configure) y la compilación (make) con un usuario normal y solo usar al superusuario para instalar la aplicación (make install), los pasos una vez dentro de la carpeta con el código fuente serían los siguientes:
./configure
make
make install
El primer comando configurará la compilación, entre otras cosas comprueba que está disponible para saber que partes de la aplicación se pueden compilar y como hay que hacerlo, el segundo comando compila la aplicación en si, dependiendo de lo grande que sea lo que vamos a compilar normalmente es el que más puede tardar aunque en este caso será rápido, el último comando instala la aplicación y normalmente es el único que debe ejecutar el superusuario (root).
Ahora vamos a preparar el script para que se pueda parar y arrancar el servicio, para ello creamos el fichero con:
nano /etc/init.d/transmission-daemon
El contenido que tiene que tener es el siguiente, se ha sacado de la página de la propia página de transmission
https://trac.transmissionbt.com/wiki/Scripts/initd:
#! /bin/sh
### BEGIN INIT INFO
# Provides: transmission-daemon
# Required-Start: networking
# Required-Stop: networking
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Short-Description: Start the transmission BitTorrent daemon client.
### END INIT INFO
# Original Author: Lennart A. JÃtte, based on Rob Howell's script
# Modified by Maarten Van Coile & others (on IRC)
# Do NOT "set -e"
#
# ----- CONFIGURATION -----
#
# For the default location Transmission uses, visit:
# http://trac.transmissionbt.com/wiki/ConfigFiles
# For a guide on how set the preferences, visit:
# http://trac.transmissionbt.com/wiki/EditConfigFiles
# For the available environement variables, visit:
# http://trac.transmissionbt.com/wiki/EnvironmentVariables
#
# The name of the user that should run Transmission.
# It's RECOMENDED to run Transmission in it's own user,
# by default, this is set to 'transmission'.
# For the sake of security you shouldn't set a password
# on this user
USERNAME=transmission
# ----- *ADVANCED* CONFIGURATION -----
# Only change these options if you know what you are doing!
#
# The folder where Transmission stores the config & web files.
# ONLY change this you have it at a non-default location
#TRANSMISSION_HOME="/var/config/transmission-daemon"
#TRANSMISSION_WEB_HOME="/usr/share/transmission/web"
#
# The arguments passed on to transmission-daemon.
# ONLY change this you need to, otherwise use the
# settings file as per above.
#TRANSMISSION_ARGS=""
# ----- END OF CONFIGURATION -----
#
# PATH should only include /usr/* if it runs after the mountnfs.sh script.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DESC="bittorrent client"
NAME=transmission-daemon
DAEMON=$(which $NAME)
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS
#
# Function that starts the daemon/service
#
do_start()
{
# Export the configuration/web directory, if set
if [ -n "$TRANSMISSION_HOME" ]; then
export TRANSMISSION_HOME
fi
if [ -n "$TRANSMISSION_WEB_HOME" ]; then
export TRANSMISSION_WEB_HOME
fi
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON --background --test -- -f $TRANSMISSION_ARGS > /dev/null \
|| return 1
start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON --background -- -f $TRANSMISSION_ARGS \
|| 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/10/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
echo "Starting $DESC" "$NAME..."
do_start
case "$?" in
0|1) echo " Starting $DESC $NAME succeeded" ;;
*) echo " Starting $DESC $NAME failed" ;;
esac
;;
stop)
echo "Stopping $DESC $NAME..."
do_stop
case "$?" in
0|1) echo " Stopping $DESC $NAME succeeded" ;;
*) echo " Stopping $DESC $NAME failed" ;;
esac
;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
echo "Restarting $DESC $NAME..."
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0|1) echo " Restarting $DESC $NAME succeeded" ;;
*) echo " Restarting $DESC $NAME failed: couldn't start $NAME" ;;
esac
;;
*)
echo " Restarting $DESC $NAME failed: couldn't stop $NAME" ;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
Por último creamos el usuario con el que se va a ejecutar transmission, creamos una carpeta donde finalizarán las descargas y otra donde si guardamos un .torrent transmission lo añadirá a las descargas automáticamente, hacemos ejecutable el script de arranque, lo configuramos para que se use cuando se encienda el equipo, para acabar lo lanzamos y lo paramos para que genere la configuración inicial:
addgroup transmission
useradd -g transmission transmission
mkdir /compartido/transmission
chown transmission:transmission /compartido/transmission
chmod -R 777 /compartido/transmission
mkdir /compartido/autotorrent
chown transmission:transmission /compartido/autotorrent
chmod -R 777 /compartido/autotorrent
chmod 755 /etc/init.d/transmission-daemon
update-rc.d transmission-daemon defaults
/etc/init.d/transmission-daemon start
/etc/init.d/transmission-daemon stop
Lo primero va a ser generar el hash de la contraseña que usaremos para acceder a transmission, por ejemplo para la contraseña "password":
servidor:~# echo -n "password" | sha1sum | cut -d " " -f 1
5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
servidor:~#
Ahora vamos a retocar dicha configuración con el comando siguiente:
nano /home/transmission/.config/transmission-daemon/settings.json
En principio tal y como vamos configurando todo en estas guías nos interesa configurar lo siguiente, básicamente activamos que los archivos incompletos se guarden en otra carpeta, que los completos se guarden en la carpeta que tenemos compartida y habilitamos opciones de seguridad, etc:
{
...
"blocklist-enabled": true,
...
"download-dir": "\/compartido\/transmission",
...
"incomplete-dir-enabled": true,
...
"rpc-authentication-required": true,
...
"rpc-password": "{5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
...
"rpc-username": "usuario",
"rpc-whitelist": "127.0.0.1,192.168.146.*",
...
"umask": 0,
...
"watch-dir": "\/compartido\/autotorrent",
"watch-dir-enabled": true
}
Una vez configurado arrancamos de nuevo el servicio
/etc/init.d/transmission-daemon start
Comentarios
Registrarse
#0 SoTA el 05-04-2010 a las 23:08
Este paso del tutorial es la principal razón de que muchos se monten su propio servidor, y con lo bien explicado que está cualquiera sin la más mínima experiencia podrá seguirlo sin problemas.
Congrats!
#1 alarido el 06-04-2010 a las 12:31
Esa es la idea, para esto han sido los cuatro anteriores, yo solo puedo decir que a mi me funcionan de maravilla.
#2 Zoltelder el 06-04-2010 a las 14:15
buen trabajo alarido, bien explicado y facil seguir los pasos
#3 Ghost el 06-04-2010 a las 16:42
Tus guías de Linux son claras y útiles. Enhorabuena por el trabajo :) .
#4 Igb el 07-04-2010 a las 00:58
Tremenda currada como tus guias anteriores, completo y claro, incluso para los que tenemos respeto a los linux sin interfaz grafica, muy buen trabajo.
#5 wimes el 07-04-2010 a las 08:41
Espectacular trabajo alarido, muy bien realizado. Mis felicitaciones y agradecimentos para vos.
#6 josealejandrom el 21-07-2010 a las 17:15
Muchisimas gracias. Estaba perdido buscando como hacer esto mismo hasta que encontre esta guia tan bien explicada. Voy a intentar imprimirla para tenerla al lado. Espero con interes la parte de como instalar un cliente de descarga directa
#7 rox el 24-07-2010 a las 05:13
hola he seguido al pie de la letra tu guia pero tengo un error, ojala me puedas ayudar.. aca te lo explico
en el paso de modificar el nano /etc/init.d/transmission-daemon
cuando agrego el scrip lo guardo y luego lo levanto con /etc/init.d/transmission-daemon start
me arroja un error.. que es el siguiente
servidor:~# /etc/init.d/transmission-daemon start
/etc/init.d/transmission-daemon: line 173: syntax error near unexpected token `||'
/etc/init.d/transmission-daemon: line 173: ` || return 1'
el texto lo pego con putty pero la verdad nose que problema de sintaxis tiene..
=)
#8 ahoms el 25-07-2010 a las 15:35
rox:
A mi me ha ocurrido lo mismo. He cambiado el contenido del /etc/init.d/transmission-daemon por este
https://trac.transmissionbt.com/wiki/Scripts/initd y ya lo he podido iniciar.
#9 ahoms el 25-07-2010 a las 16:13
La ultima version de transmission (2.03) requiere de una version de libevent (por encima de la 1.49) que no esta disponible en la versión estable de debian (lenny)
#10 alarido el 12-09-2010 a las 10:28
Los que tengáis problemas con alguna cosa lo mejor es que abráis un hilo en el foro de linux, que me puedo despistar y no enterarme de los comentarios hasta dos meses después como ha sido el caso
#11 alarido el 12-09-2010 a las 12:08
rox: cuando actualizan a versiones nuevas puede que sea necesario ajustar alguna cosa, ten en cuenta que es imposible preveer como van a implementar nuevas versiones de una aplicación, como indica ahoms basta con bajarse el que ellos proporcionan y han actualizado para funcionar.
ahoms: en estos casos siempre se puede mirar si existe una versión más moderna en los backports, por lo que veo esta la 1.4.13 que en principio serviría. Si no habría que compilar manualmente la librería no actualizada.
#12 alarido el 18-09-2010 a las 11:28
Guía actualizada para instalar transmission 2.04