Pakito finds Amuled
Publicado por mrtypo12 en Abril 23, 2008
Vamos allá:
Sobre una Ubuntu Server 7.10 hay que realizar las siguientes instalaciones previas:
apt-get samba open-ssh xinetd build-essential kernel-package libpng12-dev libgd2-noxpm-dev libcrypto++dev
No se si me he dejado algo, creo que no. Con todo eso vamos a instalar algunas cosas que ahora mismo no se necesitarán pero en breves pondré otra entrada para recompilar el kernel al gusto de EPIA y VIA para intentar rebajar la memoria consumida. Tampoco creo que sea necesario el xinetd (lo instalé para open-ssh pero este servidor no tira de xinetd parece). Samba lo queremos para compartir lo descargado y el resto de cosas las pide el amuled.
Hasta aquí lo que se puede descargar desde repositorios que yo haya probado. A parte hay que descargarse el paquete zlilb desde aquí y el paquete wxWidgets desde acá y los dejamos en la carpeta /root. En ambos casos hacemos un
tar xvf fichero.tar.gz ./configure make make install
Con todo este mondongo ya instalado podemos descargar el amuled sin temor a encontrarnos fallos de dependencias. Para ello cogemos el toro por los cuernos y nos bajamos de aqui la última versión CVS que haya y la descomprimimos con tar xvfj fichero.tar.bz2
Ahora nos toca poner los parámetros del ./configure. Estos son los que yo he usado y parecen funcionar:
./configure --enable-optimize --disable-debug --disable-upnp --with-toolkit=base --enable-amulecmd --enable-webserver --disable-monolithic --enable-amule-daemon
opciones a punta tralla. Recomiendo habilitar el optimize aunque me ha dado warnings a tutiplén cuando compilaba. Quizá algunas cosas queráis quitar: yo no puedo ni ver el uPnP y la info de debug suele ser tan críptica que en general no vale para gran cosa.
Una vez configurado le damos al make y make install. Aquí la cosa se alarga un poco (media hora aprox).
Ahora ejecutamos amuled a palo seco para crear el fichero ~/.aMule/amule.conf donde irá toda la configuración del demonio. Acto seguido ejecutamos amuleweb -w para generar el fichero remote.conf que en estos momentos no tengo muy clara su utilidad (en teoría valdría para configurar el servidor web pero todo se configura desde amule.conf).
Damos de alta una cuenta de sistema para ejecutar amuled con permisos de usuario cutre. Para ello hacemos un adduser amuled, contestamos todas las preguntas y copiamos el contenido completo de /root/.aMule a la carpeta /home/amuled.
Hecho esto vamos a configurar amuled mínimamente para que funcione y levante el servidor web. Para ello editamos el fichero amule.conf y modificamos las siguientes entradas:
En la sección [EMULE]
MaxUpload=30 MaxDownload=500
indicamos el máximo de subida y bajada en Kbytes por segundo
Port=4662 UDPPort=4672
Indicamos los puertos TCP y UDP que habremos redirigido convenientemente en nuestro router.
MaxSourcesPerFile=600 MaxConnections=990
Indicamos las conexiones máximas por fichero y totales. Las conexiones máximas totales no deben de pasar de 1000 porque las librerías utilizadas para todo el tema de red tienen esa limitación; por otro lado tampoco se yo si este hardware aguantaria valores muy altos.
TempDir=/home/amuled/.aMule/Temp IncomingDir=/home/amuled/.aMule/Incoming
Aquí va el path de los temporales y del Incoming:
OSDirectory=/home/amuled/.aMule/
Este no se para que se usa pero por si acaso modificar.
DownloadCapacity=6000 UploadCapacity=512
Para temas estadísticos se indica el ancho de banda contratado con el proveedor en Kbits (no Kbytes como antes) por segundo.
En la sección [WebServer]
ECPassword= cadena Enabled=1
Esto habilita el acceso por web y le da una contraseña. Para generar una contraseña hay que convertirla a formato MD5, que se podrá hacer con la siguiente instrucción:
$ echo -n yourpasswordhere | md5sum | cut -d ' ' -f 1
Nos dará un churro de caracteres q pegamos en ECPassword.
El amuled no soporta configurar categorías a través del front-end web asi que hay q ponerlas a piñón en el fichero amuled.conf
Aquí un ejemplo para 3 categorías.
[General] Count=3 [Cat\#1] Title=categoria1 Incoming=/home/amuled/.aMule/Incoming/categoria1 Comment= Color=3329330 Priority=1 [Cat\#2] Title=categoria2 Incoming=/home/amuled/.aMule/Incoming/categoria2 Comment= Color=3329330 Priority=1 [Cat\#3] Title=categoria3 Incoming=/home/amuled/.aMule/Incoming/categoria3 Comment= Color=3329330 Priority=1
Para tener un directorio de compartidos tenemos que editar el fichero shareddir.dat y añadir entradas de este pelo:
/home/amuled/.aMule/compartir/bso /home/amuled/.aMule/compartir/music /home/amuled/.aMule/compartir/pdf /home/amuled/.aMule/compartir/pelis
No es recursivo como se ve, así q tenemos que ir uno a uno.
Aquí tenemos el script de arranque que pondremos con permisos de ejecución en /etc/init.d. Podemos llamarlo “amuled” por ejemplo
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/amuled
WEB=/usr/local/bin/amuleweb
NAME=amuled
DESC=amuled
RUNAMULE=yes
USER=amuled
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
su $USER -c "$DAEMON -f"
while ! netstat -l -n -p -t | grep -q amuled ; do sleep 1 ; done
su $USER -c "$WEB --quiet &"
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
killall --quiet --ignore-case $WEB
killall --quiet --ignore-case $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
killall --quiet --ignore-case $WEB
killall --quiet --ignore-case $DAEMON
sleep 1
su $USER -c "$DAEMON -f"
while ! netstat -l -n -p -t | grep -q amuled ; do sleep 1 ; done
su $USER -c "$WEB --quiet &"
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
podemos linkarlo en el runlevel3 si queremos que arranque al iniciar el sistema operativo.
Y esto es todo por ahora. Las conclusiones del sistema vendrán en una tercera entrega.