Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Clientes FTP - gFTPDescarga MMS - MiMMS

Clientes P2P - aMule




Clientes P2P - aMule




Copyright

Copyright © José Luis Lara Carrascal  2008-2018   http://manualinux.eu



Sumario

Introducción
Instalación
Configurar el cortafuegos para aMule
Iniciamos aMule
Enlaces




Introducción  

Creo que este programa no requiere presentación alguna, con solo leer la palabra "Mule" cualquier usuario de informática le sonará por donde van los tiros de este documento, aMule es un fork (aplicación desarrollada a partir del código fuente de otra ya existente) de la aplicación P2P para GNU/Linux, XMule, hoy en día más abandonada que las películas de Chuck Norris en formato VHS. Además de incluir las características del archiconocido eMule también incluye las suyas propias, características que podemos comprobar en este enlace. Como siempre, en este documento trataremos su instalación desde código fuente.



Instalación  

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado aMule para la elaboración de este documento.

* GCC - (8.1.0) o Clang - (6.0.0)
* Gawk - (4.2.1)
* M4 - (1.4.18)
* Make - (4.2.1)
* Automake - (1.16.1)
* Gettext - (0.19.8.1)
* Autoconf - (2.69)
* Bison - (3.0.4)
* Flex - (2.6.4)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.20.0)
* Crypto++ - (7.0.0)
* GeoIP - (1.6.12)
* Libupnp - (1.8.3)
* WxGTK (Unicode) - (2.8.12)
* Zlib - (1.2.11)



Descarga

aMule-2.4.0-git-27052018.tar.xz

Firma Digital  Clave pública PGP

aMule-2.4.0-git-27052018.tar.xz.asc

Verificar la firma digital del paquete

$ gpg --import manualinux.asc
$ gpg --verify aMule-2.4.0-git-27052018.tar.xz.asc aMule-2.4.0-git-27052018.tar.xz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'

Donde pone amdfam10 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang, y por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
Intel
AMD
VIA
IDT

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'

Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'

Parámetros adicionales

Parámetros adicionales de eliminación de avisos específicos en el proceso de compilación
Clang
$ export {C,CXX}FLAGS+=' -Qunused-arguments'

Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura
$ export LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64"

Establecer el RPATH correspondiente si utilizamos una versión de GCC que no es la principal del sistema
$ export LDFLAGS="-Wl,-rpath,/opt/gcc8/lib64 -lstdc++ -lm"
Sustituir /opt/gcc8/lib64 por la ruta de instalación de la versión de GCC alternativa que se vaya a utilizar en el proceso de compilación de este paquete.

Establecer la variable de entorno de uso de compilador para Clang
$ export {CC,CXX}=clang
Si utilizamos Clang con Ccache, tendremos que establecer la variable de entorno correspondiente de Ccache de uso de compilador.
$ export CCACHE_CC=clang

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf aMule-2.4.0-git-27052018.tar.xz
$ cd aMule-2.4.0-git-27052018
$ sh autogen.sh
$ ./configure --disable-dependency-tracking --prefix=/usr --with-language=es \
--enable-geoip --disable-debug --enable-optimize --mandir=/usr/share/man

Explicación de los comandos

--disable-dependency-trackingAcelera el tiempo de compilación.
--prefix=/usr : Instala el programa en el directorio principal /usr.

--with language=es
: Instala sólo el idioma español del programa.
--enable-geoip : Activa el soporte de la librería GeoIP para la localización y obtención de información de las direcciones IP de los otros clientes conectados, esta dependencia no es obligatoria.

--disable-debug
: Reduce el tamaño de los binarios resultantes de la compilación.
--enable-optimize : Añade más optimizaciones al proceso de compilación, éstas no afectan a las aplicadas por el usuario.
--mandir=/usr/share/man : Instala las páginas de manual del programa en /usr/share/man, en lugar de /usr/man.

Compilación

$ make

Parámetros de compilación opcionales

-j2 : Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su -c "make install-strip"

Estadísticas de Compilación e Instalación de aMule

Estadísticas de Compilación e Instalación de aMule
CPU AMD Phenom(tm) II X4 965 Processor
MHz 3415.709
RAM 4096 MB
Sistema de archivos XFS
Versión del Kernel 4.16.12-ck1 SMP PREEMPT x86_64
Modo de frecuencia de la CPU ondemand
Versión de Glibc 2.27
Enlazador dinámico GNU gold (Binutils 2.30) 1.15
Compilador Clang 6.0.0
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -mllvm -polly -mllvm -polly-vectorizer=stripmine
Parámetros de compilación -j4
Tiempo de compilación 1' 24"
Archivos instalados 17
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 5,1 MB

Consumo inicial de CPU y RAM de aMule

Consumo inicial de CPU y RAM de aMule
Proceso
CPU Memoria física
amule 1 % 61,2 MB

Directorio de configuración personal

~/.aMule Es el directorio de configuración personal de aMule en nuestro home

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

aMule-2.4.0-git-27052018-scripts.tar.gz

$ su 
# tar zxvf aMule-2.4.0-git-27052018-scripts.tar.gz
# cd aMule-2.4.0-git-27052018-scripts
# ./Desinstalar_aMule-2.4.0-git-27052018

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su 
# tar zxvf aMule-2.4.0-git-27052018-scripts.tar.gz
# cd aMule-2.4.0-git-27052018-scripts
# ./Respaldar_aMule-2.4.0-git-27052018

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su 
# cd /var/copibin/restaurar_copias
# ./Restaurar_aMule-2.4.0-git-27052018



Configurar el cortafuegos para aMule  Bloc de Notas

A continuación pongo algunos ejemplos de configuración del cortafuegos de GNU/Linux, para habilitar los puertos correspondientes para poder trabajar con aMule. Puertos que tendremos que poner en las opciones del programa relacionadas con la conexión a internet y habilitar también en el router en el caso de que utilicemos uno para nuestra conexión a internet.

1) Arno's IPTABLES firewall

Es el script que utilizo para configurar y activar el cortafuegos en mi sistema, muy recomendable en distribuciones que no traen una herramienta gráfica para este cometido, o para usuarios que ya tienen una cierta experiencia en el uso de GNU/Linux.

Abrimos como root, con un editor de texto el archivo de configuración, /etc/arno-iptables-firewall/custom-rules, y añadimos lo que está en azul, en rojo el número de puerto:

# Put any custom (iptables) rules here down below:
##################################################

#AMULE
iptables -A INPUT -i eth0 -p tcp -m state --state NEW,ESTABLISHED,RELATED --dport 4662 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -m state --state NEW,ESTABLISHED,RELATED --dport 4665 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -m state --state NEW,ESTABLISHED,RELATED --dport 4672 -j ACCEPT 

Lo guardamos y reiniciamos el script para actualizar las reglas del cortafuegos.

$ su 
# /etc/init.d/arno-iptables-firewall restart

2) System-config-firewall (Fedora)

Es el programa utilizado por la distribución Fedora para configurar el cortafuegos.

Si estamos en Gnome, seleccionamos en la barra superior, Sistema >> Administración >> Cortafuego. Se ejecutará el programa, y en el mismo, nos vamos a Archivos de Reglas Personalizadas. Para que esta opción esté habilitada tenemos que seleccionar Opciones >> Nivel del Conocimiento del Usuario >> Experto.

Captura System-config-firewall - 1

Abrimos un editor de texto y añadimos la regla correspondiente,

#AMULE
-A INPUT -i eth0 -p tcp -m state --state NEW,ESTABLISHED,RELATED --dport 4662 -j ACCEPT
-A INPUT -i eth0 -p udp -m state --state NEW,ESTABLISHED,RELATED --dport 4665 -j ACCEPT
-A INPUT -i eth0 -p udp -m state --state NEW,ESTABLISHED,RELATED --dport 4672 -j ACCEPT 

Lo guardamos con el nombre reglas-iptables.txt, en nuestro home, en el ejemplo, en el directorio Documentos. Hacemos clic en Añadir, y se mostrará una ventana de diálogo. Buscamos el archivo creado con las reglas y seleccionamos en el apartado Tabla del Cortafuegos, la opción filter.

Captura System-config-firewall - 2

Finalmente hacemos clic en Aceptar y en Aplicar de la interfaz de configuración del cortafuegos.

Captura System-config-firewall - 3

Para comprobar que tenemos abiertos estos puertos, nos vamos a la web de aMule y lo comprobamos en este enlace.



Iniciamos aMule  

Sólo nos queda teclear en una terminal o en un lanzador el comando amule, y el programa aparecerá en la pantalla. Es muy recomendable que nos descarguemos el archivo de nodos de la red Kademlia de forma manual, ya que desde el programa da error, porque éste los convierte a formato HTML, y éstos tienen que estar en formato binario. Abrimos una ventana de terminal y ejecutamos los siguientes comandos, habiendo cerrado previamente el programa.

$ wget http://upd.emule-security.org/nodes.dat -O ~/.aMule/nodes.dat

Volvemos a iniciar el programa, y si tenemos el cortafuegos y el router correctamente configurados, podremos conectarnos a la red Kademlia sin ningún problema, además de la red principal, como es obvio.

También podemos aprovechar para actualizar los servidores de la red eDonkey por unos más seguros proporcionados por el usuario Falcone del foro de ADSL Zone. Basta ejecutar el siguiente comando, también lo podemos hacer desde el programa, pero esto es más rápido.

$ wget http://emuling.net23.net/server.met -O ~/.aMule/server.met

Y por último, los filtros de IP actualizados a fecha de 04-05-2018, que nos descargamos y extraemos en el lugar oportuno.

$ wget http://emuling.net23.net/ipfilter.zip
$ unzip
-o ipfilter.zip -d ~/.aMule


Captura aMule - 1


Captura aMule - 2


Captura aMule - 3




Enlaces  


http://ww.amule.org >> La web de aMule.


Foro Galería Blog


Actualizado el 27-05-2018

Clientes P2P - aMule

Clientes FTP - gFTPDescarga MMS - MiMMS