GNU/Linux >> Tutoriales Linux >  >> Arch Linux

Cómo solucionar el error "pacman:error al cargar bibliotecas compartidas" en Arch Linux

Durante los últimos días, he estado probando exhaustivamente PIP y Pipenv herramientas en mi sistema Arch Linux. Mientras probaba estas herramientas, tuve que reinstalar y degradar los paquetes Python2.x, Python 3.x y algunos otros paquetes de dependencias de Python muchas veces. En algún momento, se rompió mi Arch Linux y pacman dejó de funcionar. Cada vez que ejecuto pacman, recibo un error que dice "pacman:error al cargar bibliotecas compartidas:libidn2.so.0:no se puede abrir el archivo de objeto compartido:no existe tal archivo o directorio" .

pacman:error al cargar bibliotecas compartidas:libidn2.so.0:no se puede abrir el archivo de objeto compartido:no existe tal archivo o directorio

No solo pacman, algunas otras aplicaciones, como pacaur, yaourt, packer, virtualbox y transmisión, etc., también dejaron de funcionar. Cuando trato de 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". Lo más probable es que haya desinstalado algo que no podía recordar. Para mi mala suerte, era mi sistema personal y no quiero reinstalarlo porque tiene muchas aplicaciones. Por lo tanto, reinstalar el sistema operativo y todas las aplicaciones puede demorar dos o más días. Después de buscar vigorosamente en la wiki de Arch Linux y otros foros de Linux como un loco, finalmente logré solucionarlo. Si alguna vez se encuentra con un problema como este, no busque en ninguna parte, simplemente descargue el archivo fuente y copie los archivos que faltan en /usr/lib/ carpeta. Por lo que busqué en la web, este método parece muy fácil hasta ahora. Siga leyendo para saber cómo solucioné este error.

Corregir el error "pacman:error al cargar bibliotecas compartidas" en Arch Linux

Como ya dije, seguía recibiendo este error:"pacman:error al cargar bibliotecas compartidas:libidn2.so.0:no se puede abrir el archivo de objeto compartido:no existe tal archivo o directorio" cuando ejecuto el comando pacman o cualquier asistente de AUR como pacaur, packer, yaourt e incluso no puedo abrir la aplicación VirtualBox y el cliente de transmisión. Entonces, el problema real aquí es el archivo "libidn2.so.0" ha desaparecido. ¡Tenemos que averiguarlo!

$ ls -la /usr/lib/libidn*

Salida de muestra 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

Tenía "libidn.so", pero no puedo encontrar "libidn2.so.0". Dado que pacman y cualquier otro administrador de paquetes no funcionaron, no hay forma de instalar, actualizar o degradar ningún paquete del repositorio oficial o caché local. Entonces, pensé que la única forma podría ser descargar el paquete que tiene el archivo faltante de Internet, extraerlo y finalmente copiar los archivos faltantes en el directorio /usr/lib/. Déjame crear un directorio para guardar el archivo tar de libdin2:

$ mkdir libidn
$ cd libidn

Busque y descargue la última versión de este paquete. Una búsqueda rápida en Google me trajo aquí . Extraiga el archivo:

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

El comando anterior extrajo el contenido del archivo en un directorio llamado "usr". Vaya a la carpeta usr/lib:(Nota - Es usr/lib , no /usr/lib )

$ cd usr/lib

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

$ sudo cp libidn2.so.0 /usr/lib/

Luego, ejecuté:

$ sudo pacman -syu

Actualizar Arch Linux

¡Voila! ¡Pacman funciona ahora! ¡Ups! Oh no, espera... No funcionó. Recibí este error después de unos minutos.

[....]
(511/511) checking keys in keyring [######################] 100%
(511/511) checking package integrity [######################] 100%
(511/511) loading package files [######################] 100%
(511/511) checking for file conflicts [######################] 100%
error: failed to commit transaction (conflicting files)
libidn2: /usr/lib/libidn2.so.0 exists in filesystem
Errors occurred, no packages were upgraded.

Para arreglar esto, ejecuté:

$ sudo pacman -S libidn2 --force

Luego, intenté actualizar de nuevo:

$ sudo pacman -Syu

¡¡Reparado!! Todo bien ahora. Entonces, si alguna vez se encuentran con un problema como "error al cargar bibliotecas compartidas:... no se puede abrir el archivo de objeto compartido:no existe tal archivo o directorio" , una forma de arreglar esto es encontrar el paquete que contiene los archivos que faltan, descargar la última versión de ese paquete, extraerlo y copiar los archivos que faltan en /usr/lib/ directorio. Por supuesto, podría haber muchas maneras de solucionar este tipo de problemas. Pero esta es la única solución funcional que pude encontrar y la encuentro mucho más fácil y rápida. Este truco también podría funcionar en otras distribuciones de Linux.

Lectura relacionada:

  • Cómo restaurar Broken Arch Linux al estado de funcionamiento anterior
  • Cómo solucionar el error "no se puede bloquear la base de datos" en Arch Linux
  • Cómo solucionar el error "paquete no válido o dañado (firma PGP)" en Arch Linux
  • Cómo resolver el problema "Iniciando la actualización completa del sistema... no hay nada que hacer" en Arch Linux
  • Cómo resolver el "error:no se pudo confirmar la transacción (archivos en conflicto)" en Arch Linux

Arch Linux
  1. Linux:¿cómo cambiar Arch Linux a Lts Kernel?

  2. Linux:¿cómo eliminar paquetes antiguos instalados por Pacman en Arch Linux?

  3. rpm:error al cargar bibliotecas compartidas:encabezado ELF no válido

  4. Error de Linux al cargar bibliotecas compartidas:no se puede abrir el archivo de objeto compartido:no existe tal archivo o directorio

  5. conda.exe:error al cargar bibliotecas compartidas:libz.so.1

Cómo instalar MATE Desktop en Arch Linux

Cómo corregir el error "trabajo para el servicio netctl fallido" en Arch Linux

Cómo ajustar el tamaño de la partición raíz en Live Arch Linux

Cómo enumerar las bibliotecas compartidas utilizadas por los ejecutables en Linux

Cómo restablecer la contraseña de root olvidada en Arch Linux

error al cargar bibliotecas compartidas:libncurses.so.5: