¿Problemas con Amule en Ubuntu 18.04? Instálalo manualmente.

Una instalación que debería ser sencilla en la mayoría de los casos, pero que se puede ver influenciada por la gran variedad de elementos que forman el conjunto de archivos de nuestro Ubuntu, ha motivado la multitud de peticiones que hemos recibido sobre este tema desde que Ubuntu liberó la versión  18.x. Así que hemos estado echando un ojo al problema y buscando la mejor solución… pero… ¿a que problema nos referimos?

Si tras instalar desde el Gestor de Aplicaciones el Amule, este se cierra al pasar de un botón a otro (por ejemplo de seleccionar servidor, a realizar una búsqueda), es posible que el error que nos esté mostrando sea algo similar a: «amule crashed with SIGSEGV in wxWindow::DoClientToScreen()»

Si fuera así… ¡estamos de enhorabuena!

El amigo de Vancouver tiene reportada una solución para el error #125 en el proyecto amule. Una solución muy fácil, laboriosa, pero muy fácil de implementar.

PASOS A SEGUIR:

0.- Lo primero que debemos hacer, es desinstalar nuestro aMule desde el Gestor de Aplicaciones de Ubuntu.

1.- Descargamos desde un navegador web, las wxWidgets que encontraremos en este enlace: wxWidgets-2.8.12.tar.gz Esta es la última versión sobre la que funciona Amule, asi que tenemos la precaución de que sea la 2.8.12.

2.- Abrimos una ventana Terminal y nos ponemos cómodos para ir escribiendo las siguientes instrucciones.

2.1.- Antes de meternos en «faena», debemos indicar al compilador que use la versión de lenguaje C++, adecuada para la época en que se programó el aMule y para eso necesitamos añadir las siguientes variables de entorno:

2.1.1.- export CFLAGS=-std=c99 CXXFLAGS=-std=c++98

3.- Comenzamos, ahora sí, con la compilación de las wxWidgets:

3.1- cd Descargas

3.2- tar -zxvf wxWidgets-2.8.12.tar.gz

3.3.- cd wxWidgets-2.8.12

3.4.- sudo ./configure –enable-unicode –enable-optimise –prefix=/usr

3.5.- sudo make

3.6.- sudo make install

3.7.- sudo ldconfig

4.- Descargamos desde un navegador web, la versión estable (SVN) de aMule desde: amule-de3b112.tar.gz. Esta versión es del 21 de marzo de 2018, si queremos buscar por si hay alguna posterior tenéis un repositorio de tarballs en: http://amule.sourceforge.net/tarballs/tarballs.xml

4.1.- cd Descargas

4.2.- tar -zxvf amule-de3b112.tar.gz

4.3.- cd amule-de3b112.tar.gz

4.4.- Para solventar el fallo de segmentación que nos envía la señal de SIGSEGV (solución de XianHuang), editamos el primer fichero del que debemos eliminar 9 líneas:

4.4.1.- sudo nano /src/extern/wxWidgets/listctrl.cpp

4.4.2.- Pulsamos a la vez las teclas CONTROL y «_»

4.4.3.- Cuando nos pregunta a que línea queremos ir, le decimos: 5806

4.4.4.- Eliminaremos con la tecla SUPR las siguientes líneas:

void wxGenericListCtrl::DoClientToScreen( int *x, int *y ) const
{
m_mainWin->DoClientToScreen(x, y);
}
void wxGenericListCtrl::DoScreenToClient( int *x, int *y ) const
{
m_mainWin->DoScreenToClient(x, y);
}
void wxGenericListCtrl::SetFocus()

4.4.5.- Pulsaremos a la vez las teclas CONTROL y «x»

4.4.6.- Cuando nos pregunte si queremos salir guardando le diremos que SI (o Yes si pregunta en Inglés)

4.4.7.- Cuando nos pregunte el nombre pulsaremos ENTER para confirmar el que propone.

4.5.- Editamos ahora el segundo fichero del que debemos eliminar 4 líneas:

4.5.1.- sudo nano /src/extern/wxWidgets/listctrl.h

4.5.2.- Pulsamos a la vez las teclas CONTROL y «_»

4.5.3.- Cuando nos pregunta a que línea queremos ir, le decimos: 235

4.5.4.- Eliminaremos con la tecla SUPR las siguientes líneas:

// take into account the coordinates difference between the container
// window and the list control window itself here
virtual void DoClientToScreen( int *x, int *y ) const;
virtual void DoScreenToClient( int *x, int *y ) const;

4.5.5.- Pulsaremos a la vez las teclas CONTROL y «x»

4.5.6.- Cuando nos pregunte si queremos salir guardando le diremos que SI (o Yes si pregunta en Inglés)

4.5.7.- Cuando nos pregunte el nombre pulsaremos ENTER para confirmar el que propone.

4.6.- Ya podemos continuar con la compilación del programa aMule:

4.6.1.- sudo ./configure –disable-debug –enable-optimize

4.6.2- sudo make

4.6.3- sudo make install

Y listo ya podemos ejecutar nuestro ./amule desde el terminal o buscarlo entre nuestras aplicaciones y anclarlo a favorito.

7 comentarios en “¿Problemas con Amule en Ubuntu 18.04? Instálalo manualmente.”

  1. Buenas tardes Pedro Javier,
    Si nos indica en que punto ha fallado el proceso, cual es el error exacto y que versión concreta de sistema operativo está usando, es probable que podamos echarle una mano. 😀
    Quedando a su disposición, reciba un cordial saludo.

  2. Buenos dias:
    A mi tampoco me ha funcionado.
    El archivo que me descargué al clicar en tu enlace «wxX11-2.8.12.tar.gz» fue exactamente el archivo «wxX11-2.8.12.tar.gz», asi que en la orden

    3.2- tar -zxvf wxWidgets-2.8.12.tar.gz

    me devuelve

    tar (child): wxWidgets-2.8.12.tar.gz: No se puede efectuar open: No existe el archivo o el directorio
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now

    Alcanzo a entender que el nombre del archivo no es correcto. Cambio el nombre del archivo y lo extrae correctamente. Sin embargo, el nombre de la carpeta extraida ya no es «wxWidgets-2.8.12» sino «wxX11-2.8.12.tar.gz».
    Repito mi correccion en la siguiente orden que propones y sin problemas:

    cd wxX11-2.8.12

    Sin embargo, en la siguiente orden que propones:

    3.4.- sudo ./configure –enable-unicode –enable-optimise –prefix=/usr

    me responde esto:

    configure: WARNING: you should use –build, –host, –target
    configure: WARNING: invalid host type: –enable-unicode
    configure: WARNING: you should use –build, –host, –target
    configure: WARNING: invalid host type: –enable-optimise
    configure: error: invalid variable name: –prefix

    Y a tanto no llego.
    No se como solucionar esto.
    ¿Una ayudita? ¿Por favor?

    Te puedo decir que uso UBUNTU 18.04 y que mi PC es de 64 bits. Si necesitas conocer mas informacion sobre mi sistema, comentame como conseguirla.

    Muchas gracias

  3. Buenos días Diana,
    Efectivamente había un error en el enlace y el nombre del fichero a descargar.
    Este debe ser: wxWidgets-2.8.12.tar.gz
    no el que figuraba en el enlace de descarga anterior: wxX11-2.8.12.tar.gz.
    Al descargarse el fichero incorrecto, es normal que el resto, diera problemas.
    Podéis ver todos los ficheros de esa versión en el siguiente enlace: wxWidgets 2.8.12
    Disculpar las molestias casusadas por la errata.

  4. Hola Theodore Kord,
    aMule no compila en la versión 3.0.4 de wxWidgets.
    La versión más alta que soporta es la 2.8.12.
    Nuestro consejo es que, si no tienes mucha soltura en Linux, dejes solo la que necesita Amule.
    Pero si por dependencias de otro software tienes que mantener la 3.x, entonces recuerda lo que dice la wiki:
    Si ya hay una versión de wxWidgets instalada, pero desea que aMule use otra, estos son los pasos a seguir:
    Primero, cree el directorio de destino (en este artículo, como ejemplo, se usará ~/aMule/), donde residirán wxWidgets y aMule (no necesitan estar en el mismo directorio, pero hacen la vida más fácil). A continuación, configure wxWidgets y aMule en consecuencia.
    Se recomienda que lea el artículo sobre cómo compilar wxGTK
    Estando en el directorio fuente de aMule escriba:
    ./configure –prefix = /home/user/aMule/ –enable-debug –disable-optimise –with-wx-config=/home/user/aMule/bin/wx-config
    make && make install
    NOTA 2: A veces wxBase sobrescribirá wx-config. Puede saber si lo ha hecho ejecutando wx-config –basename. Debería mostrar wx_gtk. Si no es así, reinstale wxGTK para que sobrescriba wx-config y vincularlo al archivo wxGTK.
    En el ejemplo anterior, un binario de aMule se instalará en el directorio ~/aMule/bin/.
    Para iniciar aMule, debe especificar explícitamente la ruta de LD cada vez que lo ejecute:
    export LD_LIBRARY_PATH=~/aMule/lib:$LD_LIBRARY_PATH
    export LC_ALL=en_EN.UTF-8
    NOTA 3: en algunos sistemas, el comando de exportación anterior no funciona, en su lugar debe ejecutar
    export LD_LIBRARY_PATH = ~/aMule/lib/:$LD_LIBRARY_PATH
    Esto se ha observado en Debian y Gentoo Linux.

Dejar un comentario