pacman-syu

En algún momento, se rompió mi Arch Linux y pacman dejó de funcionar. Cada vez que ejecuto pacman, aparece un error que dice “Error while loading shared libraries: libidn2.so.0: no se puede abrir el archivo de objeto compartido: no existe dicho archivo o directorio“.

pacman

No solo pacman, algunas otras aplicaciones, como pacaur, yaourt, packer, virtualbox y transmisión, etc., también dejaron de funcionar. Cuando intento abrir cualquiera de estas aplicaciones, sigo recibiendo este mensaje: “Error al cargar bibliotecas compartidas: libidn2.so.0: no se puede abrir el archivo de objeto compartido“. Es posible que haya desinstalado algo que no podía recordar.

Para mi mala suerte, era mi sistema personal y no quiero reinstalarlo ya que tiene muchas aplicaciones. Por lo tanto, reinstalar el sistema operativo y todas las aplicaciones podría tomar dos o pueden ser más días. Después de buscar vigorosamente en Arch Linux wiki y otros foros de Linux como un loco, finalmente logré solucionarlo. Si alguna vez te encuentras con un problema como este, no busques nada, simplemente descarga el archivo fuente y copia los archivos faltantes a la carpeta /usr/lib/. Por lo que busqué en la web, este método parece ser el más fácil hasta ahora. Sigue leyendo para saber cómo solucioné este error.

Como ya dije, seguí recibiendo este error: “pacman: error al cargar las bibliotecas compartidas: libidn2.so.0: no se puede abrir el archivo de objeto compartido: no existe ese archivo o directorio” cuando ejecuto el comando pacman o cualquier ayudante de AUR como pacaur , packare, yaourt e incluso no puedo abrir la aplicación VirtualBox y el cliente de Transmission.

Entonces, el problema real aquí es que el archivo “libidn2.so.0” ha desaparecido. ¡Tenemos que descubrirlo!

ls -la /usr/lib/libidn*

Muestra de salida de mi sistema Arch Linux:

lrwxrwxrwx 1 root root 22 Jul 22 2013 /usr/lib/libidnkitlite.so -> libidnkitlite.so.1.0.2
lrwxrwxrwx 1 root root 22 Jul 22 2013 /usr/lib/libidnkitlite.so.1 -> libidnkitlite.so.1.0.2
-rw-r--r-- 1 root root 276352 Jul 22 2013 /usr/lib/libidnkitlite.so.1.0.2
lrwxrwxrwx 1 root root 18 Jul 22 2013 /usr/lib/libidnkit.so -> libidnkit.so.1.0.2
lrwxrwxrwx 1 root root 18 Jul 22 2013 /usr/lib/libidnkit.so.1 -> libidnkit.so.1.0.2
-rw-r--r-- 1 root root 282368 Jul 22 2013 /usr/lib/libidnkit.so.1.0.2
lrwxrwxrwx 1 root root 17 Aug 15 19:00 /usr/lib/libidn.so -> libidn.so.11.6.16
lrwxrwxrwx 1 root root 17 Aug 15 19:00 /usr/lib/libidn.so.11 -> libidn.so.11.6.16
-rwxr-xr-x 1 root root 210872 Aug 15 19:00 /usr/lib/libidn.so.11.6.16

Tengo “libidn.so“, pero no puedo encontrar “libidn2.so.0“. Debido a que pacman y cualquier otro administrador de paquetes no funcionó, no hay forma de instalar, actualizar o degradar ningún paquete desde el repositorio oficial o la memoria caché local. Por lo tanto, pensé que la única forma podría ser descargar el paquete que tiene el archivo que falta de Internet, extraerlo y finalmente copiar los archivos que faltan al directorio /usr/lib/.

Crearé un directorio para guardar el archivo tar libdin2:

mkdir libidn
cd libidn

Encuentra y descarga la última versión de este paquete. Una rápida búsqueda en Google me llevó aquí.

wget http://ftp5.gwdg.de/pub/linux/archlinux/core/os/x86_64//libidn2-2.0.4-2-x86_64.pkg.tar.xz

Extraemos el archivo:

tar xf libidn2-2.0.4-2-x86_64.pkg.tar.xz

El comando anterior extrajo los contenidos del archivo en un directorio llamado “usr“.

Ve a la carpeta usr/lib: (Nota: es usr/lib no /usr/lib)

cd usr/lib

Finalmente copia el archivo que falta, en nuestro caso es libidn2.so.0, al directorio /usr/lib/ de tu sistema Arch Linux.

cp libidn2.so.0 /usr/lib/

Entonces introduje:

sudo pacman -syu

Pacman vuelve a trabajar.

pacman-1

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 30801 invitados y ningún miembro en línea