idn2: Relocation Error
Recientemente se ha desatado un problema grave en Ubuntu y derivados relacionado con las bibliotecas compartidas. Tras una actualización de este sistema operativo se ha reportado que muchos sistemas dejan de funcionar y todo se vuelve un caos (las aplicaciones no abren y nada funciona como debería).
Por ejemplo, uno de los mensajes de error en Samba:
/usr/sbin/smbd: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
Causa
Al momento de redacción de este post, todo apunta que el causante de este desastre es el paquete libidn2-0, encargado de "Internationalized domain names (IDNA2008/TR46)". Probablemente sea un conflicto de versiones:
/home/user/.local/share/flatpak/runtime/org.freedesktop.Platform/x86_64/18.08/3d3acbb042b32045cc9184b6b0c85a1d069164771fedb3b5857abee33f715274/files/lib/x86_64-linux-gnu/libgnutls.so.30.22.0 /snap/core/7396/usr/lib/x86_64-linux-gnu/libgnutls.so.30 /snap/core/7396/usr/lib/x86_64-linux-gnu/libgnutls.so.30.6.2 /snap/core/7713/usr/lib/x86_64-linux-gnu/libgnutls.so.30 /snap/core/7713/usr/lib/x86_64-linux-gnu/libgnutls.so.30.6.2 /usr/lib/x86_64-linux-gnu/libgnutls.so.30 /usr/lib/x86_64-linux-gnu/libgnutls.so.30.14.10
O la diferencia de versiones relacionadas con el ppa:ondrej/php de ondrej:
apt-cache policy libidn2-0 libidn2-0: Instalados: 2.0.4-1.1build2 Candidato: 2.2.0-2+ubuntu18.04.1+deb.sury.org+1 Tabla de versión: 2.2.0-2+ubuntu18.04.1+deb.sury.org+1 500 500 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages *** 2.0.4-1.1build2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages 100 /var/lib/dpkg/status
Workaround
Para aquellos que tienen este problema se recomienda degradar el paquete, siguiendo las recomendaciones descritas AQUI:
En otro equipo descargue el archivo:
wget http://mirrors.kernel.org/ubuntu/pool/main/libi/libidn2/libidn2-0_2.0.4-1.1build2_amd64.debTambién sirve el paquete libidn2-0_2.0.5-1_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/libi/libidn2/libidn2-0_2.0.5-1_amd64.deb
Guárdelo en una memoria flash usb. Conéctela al equipo con problemas. Como no permitirá abrir el terminal, debe abrir el TTY con CTRL+ALT+F1 o CTRL+ALT+Fn+F1 (hasta F6), poner su usuario y contraseña. Vaya a la usb (cd /media/user etc.) y ejecute:
dpkg -i libidn2-0_2.0.4-1.1build2_amd64.deb
Pueden marcar el paquete como retenido, aunque esto no es necesario ni recomendable:
apt-mark hold libidn2-0
Finalmente reinicie y todo habrá vuelto a la normalidad.
Actualización
Afortunadamente, hoy Sep 11/2019, el bug fue solucionado y solo afectó a los sistemas que usaban el ppa:ondrej/php:
cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS" apt dist-upgrade apt-cache policy libidn2-0 libidn2-0: Installed: 2.2.0-2+ubuntu18.04.1+deb.sury.org+1 Candidate: 2.2.0-2+ubuntu18.04.1+deb.sury.org+1 Version table: *** 2.2.0-2+ubuntu18.04.1+deb.sury.org+1 500 500 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages 100 /var/lib/dpkg/status 2.0.4-1.1build2 500 500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Lo anterior demuestra una vez más que en cualquier sistema operativo (Linux, Windows, etc.) hay que estar 100% seguros antes de aplicar actualizaciones a equipos en producción no sea que nos llevemos una sorpresa como ésta y nuestro sistema operativo quede inservible.
Post a Comment