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


11

Después de actualizar con pacman -Syuq:

# pacman -Sc

pacman: error al cargar las bibliotecas compartidas: libicuuc.so.59: no se puede abrir el archivo de objeto compartido: No existe tal archivo o directorio

# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60

Arch Linux en una versión Pi 1:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux

El mismo problema aquí, apareció hoy. Para mí libicuuc.so.59. Tengo que pasar por la línea de comando para arrancar y muchos programas ya no funcionan
zakrapovic

También falta libicui18n.so.59 probablemente relacionado
zakrapovic

En realidad resolví mi problema con pacman -Sc seguido de pacman -Syuu
zakrapovic el

Respuestas:


20

Las soluciones propuestas anteriormente no eran relevantes o no me funcionaron. Por alguna razón, al actualizar el icupaquete de 59.1-2 a 60.1-1 se rompió el enlace y muchos programas (incluido pacman) fallaron con este error después. No pacman interrumpido de mi lado.

Si todavía tiene el paquete anterior en su caché, puede probar esto, que funcionó para mí:

  1. Localice la versión en caché del paquete (por ejemplo, el mío era /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz).
  2. Extraelo: mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. Copie libs a su carpeta lib: sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. Continuar con la actualización: sudo pacman -Syyu
  5. Ahora puede eliminar los archivos que acaba de extraer.

2
Gracias, esto funcionó para mí. Pero, ¿cómo debo eliminar de forma segura los archivos libicu * .59 copiados? rm /usr/lib/libicu*.59?
Skatox

Esto funcionó para mí también. Gracias, ten un voto a favor.
Vaughan Hilts

2

También puede usar la variable LD_LIBRARY_PATH para cargar las bibliotecas icu desde una ubicación diferente. De esta manera, puede evitar cualquier copia a / usr / lib:

$ mkdir -p ~/pkg/tmp
$ tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
$ su
# LD_LIBRARY_PATH=`pwd`/pkg/tmp pacman -U /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz

Fue LD_LIBRARY_PATH=`pwd`/pkg/tmp/usr/liben mi caso.
v_2e

1

Investigué el problema y descubrí sobre el /var/log/pacman.log. Leí el registro y descubrí que el problema era:

...
[2017-11-28 04:34] [ALPM] upgraded libmariadbclient (10.1.28-1 -> 10.1.29-1)
[2017-11-28 04:34] [ALPM] transaction interrupted

La actualización se interrumpió, de ahí el problema de vinculación.

Luego descargué el firmware desde aquí . Extraje la biblioteca que falta:

$ gunzip ArchLinuxARM-rpi-latest.tar.gz
$ tar -tf ArchLinuxARM-rpi-latest.tar |grep libicuuc.so.59
./usr/lib/libicuuc.so.59.1
./usr/lib/libicuuc.so.59
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59.1
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59

libicuuc.so.59era un enlace simbólico a libicuuc.so.59.1, así que me mudé libicuuc.so.59.1a /usr/lib/libicuuc.so.59.

En ejecución pacmanrecibí el error que libicudata.so.59faltaba. Extraje la biblioteca faltante /usr/liby pacmanestaba trabajando :).

Luego actualicé el sistema pacman -Syuqy verifiqué ldd /usr/bin/pacmanque todas las bibliotecas estaban presentes. Moví las bibliotecas v59 /usr/liby verifiqué que pacmanfuncionaba.

Reiniciar con los dedos cruzados ... ¡¡¡con éxito !!!

pacman -Sc e ir a la cama con una sonrisa :)


1

En caso de que tenga un ejecutable que necesite esa versión particular de la biblioteca (como sucedió en mi caso), hay un paquete aur para esa versión específica.


0

Resolvió el problema con pacman -Sc seguido de pacman -Syyu No estoy seguro de por qué resolvió el problema.


0

En su sistema lib32-icu no está instalado. Simplemente instale lib32-icu desde pacman y se resolverán todos los problemas.

sudo pacman -S lib32-icu

0

Resolví este problema con la ayuda del siguiente enlace; aquí

De acuerdo con este artículo, la degradación es una mala idea y lo que probablemente debería hacer es reconstruir el paquete que utiliza la dependencia que falta más arriba. La degradación puede afectar múltiples paquetes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.