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

  •   Análisis de Microsoft Windows Defender Antivirus


      Publicada el 16-11-2009 a las 17:27 en Software

    Es mejor tener la herramienta gratuita de Microsoft que no tener nada

  •   AMD A10 6700


      Publicada el 24-07-2013 a las 00:37 en Microprocesadores

    AMD aprovecha el tirón del anuncio de las nuevas consolas, las cuales usan APUs diseñada...

  •   Noctua NF S12A


      Publicada el 22-04-2013 a las 13:45 en Refrigeración / Cajas

    Normalmente Noctua presenta sus nuevas tecnologías en los ventiladores de 120mm por ser l...

  •   Dune HD Base 3D


      Publicada el 16-04-2013 a las 13:32 en Vídeo

    El reproductor multimedia Dune HD Base 3D es capaz de lidiar con todos los formatos de ví...

  •   Noctua NF A14 FLX con Corsair H110


      Publicada el 04-04-2013 a las 12:04 en Refrigeración / Cajas

    Recordando los buenos resultados que en su día nos ofreció la unión de ventiladores Noc...

  •   Noctua Serie A 140mm


      Publicada el 01-04-2013 a las 11:08 en Refrigeración / Cajas

    Se podría decir que, probablemente Noctua, sea el fabricante con los ventiladores más av...

  •   Antec Kuhler 920 y 620


      Publicada el 27-03-2013 a las 00:08 en Refrigeración / Cajas

    Antec realiza una nueva incursión en el mundo de los sistemas de refrigeración líquida ...

  •   Corsair H110


      Publicada el 08-03-2013 a las 16:28 en Refrigeración / Cajas

    Hace casi dos años Corsair nos sorprendió con el lanzamiento del H100, el primer kit de ...

  •   Antec GX700


      Publicada el 25-02-2013 a las 10:39 en Refrigeración / Cajas

    Antec nos presenta su nuevo chasis GX700, el cual posee una estética militar y una funcio...

  •   Gigabyte GA Z77X UP7


      Publicada el 20-02-2013 a las 01:30 en Placas base

    Gigabyte nos presenta su buque insignia para socket LGA1155, la cual posee un diseño con ...