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