Buscar en Mundobip

Artículos | Foro
Publicado por alarido el  05-04-2010 a las 19:17

Instalación y configuración de transmission Guía de instalación de Servidor con Linux Debian Lenny al mínimo (Parte V: Servidor de descarga P2P)


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


Publicidad


< Anterior    Siguiente >


 Comentarios


 Registrarse
#0  SoTA el 06-04-2010 a las 01: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 14: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 16:15
buen trabajo alarido, bien explicado y facil seguir los pasos

#3  Ghost el 06-04-2010 a las 18:42
Tus guías de Linux son claras y útiles. Enhorabuena por el trabajo :) .

#4  Igb el 07-04-2010 a las 02: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 10:41
Espectacular trabajo alarido, muy bien realizado. Mis felicitaciones y agradecimentos para vos.

#6  josealejandrom el 21-07-2010 a las 19: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 07: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 17: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 18: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 12: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 14: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 13:28
Guía actualizada para instalar transmission 2.04

Lee también

  •   Corsair Accelerator Series 30Gb


      Publicada el 08-05-2012 a las 11:46 en Almacenamiento

    Corsair nos presenta un nuevo producto denominado Accelerator Series, el cual es una unida...

  •   Gigabyte GA X79 UD7 e Intel Core i7 3820


      Publicada el 19-04-2012 a las 00:48 en Placas base

    La GA-X79-UD7 es la placa base más versátil de Gigabyte en cuanto a la plataforma X79 se...

  •   Gigabyte GA Z77X D3H


      Publicada el 22-03-2012 a las 23:10 en Placas base

    Tanto los nuevos procesadores de Intel denominados Ivy Bridge como sus nuevos chipsets, lo...

  •   Intel Core i7 3960X Sandy Bridge E


      Publicada el 04-03-2012 a las 18:21 en Microprocesadores

    En Noviembre Intel presentó su plataforma más avanzada, basada en el conjunto de chipset...

  •   Gigabyte GA 990FXA UD3


      Publicada el 25-02-2012 a las 20:54 en Placas base

    Gigabyte nos presenta una placa base de gama media basada en el conjunto de chipsets AMD 9...

  •   Linux Debian IX: TeamPass Gestor de contraseñas web multiusuario


      Publicada el 20-02-2012 a las 20:36 en Otros

    El objetivo de este tutorial es mostrar paso a paso como configurar e instalar un gestor d...

  •   NZXT Switch 810


      Publicada el 07-02-2012 a las 00:54 en Refrigeración / Cajas

    NZXT pone en nuestras manos la caja Switch 810, una torre increíblemente espaciosa con un...

  •   AMD FX 8150


      Publicada el 31-01-2012 a las 17:23 en Microprocesadores

    Ha llegado a nuestras manos un kit de análisis de la nueva plataforma de AMD denominada S...

  •   Corsair Vengeance K60


      Publicada el 08-01-2012 a las 17:31 en Periféricos

    Corsair ha creado una amplia gama de periféricos para jugadores. Ya analizamos unos auric...

  •   Guía de Overclock para Sandy Bridge LGA 1155 y LGA 2011


      Publicada el 03-01-2012 a las 19:24 en Microprocesadores

    Nos metemos de lleno en el mundillo del overclock para la nueva plataforma de intel, de la...