Erreur lors du chargement des bibliothèques partagées: libicuuc.so.59: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type

11

Après la mise à jour avec pacman -Syuq:

# pacman -Sc

pacman: erreur lors du chargement des bibliothèques partagées: libicuuc.so.59: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type

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

Arch Linux dans une version Pi 1:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux
frustréMartien
la source
Même problème ici, apparu aujourd'hui. Pour moi libicuuc.so.59. Je dois passer par la ligne de commande pour démarrer et de nombreux programmes ne fonctionnent plus
zakrapovic
Libicui18n.so.59 également manquant probablement lié
zakrapovic
J'ai en fait résolu mon problème avec pacman -Sc suivi de pacman -Syuu
zakrapovic

Réponses:

20

Les solutions précédemment proposées n'étaient pas pertinentes ou n'ont pas fonctionné pour moi. Pour une raison quelconque, la mise à niveau du icupackage de 59.1-2 à 60.1-1 a interrompu la liaison et de nombreux programmes (y compris pacman) ont échoué avec cette erreur après. Aucun pacman interrompu de mon côté.

Si vous avez toujours le package précédent dans votre cache, vous pouvez essayer ceci, qui a fonctionné pour moi:

  1. Localisez la version en cache du package (par exemple, la mienne l'était /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz).
  2. Extrayez-le: mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. Copiez les bibliothèques dans votre dossier lib: sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. Procédez à la mise à jour: sudo pacman -Syyu
  5. Vous pouvez maintenant supprimer les fichiers que vous venez d'extraire.
Legogris
la source
2
Merci, cela a fonctionné pour moi. Mais comment supprimer en toute sécurité les fichiers libicu * .59 copiés? rm /usr/lib/libicu*.59?
Skatox
Cela a également fonctionné pour moi. Merci, ayez un vote positif.
Vaughan Hilts
2

Vous pouvez également utiliser la variable LD_LIBRARY_PATH pour charger les bibliothèques icu à partir d'un emplacement différent. De cette façon, vous pouvez éviter toute copie vers / 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
jviki
la source
C'était LD_LIBRARY_PATH=`pwd`/pkg/tmp/usr/libdans mon cas.
v_2e
1

J'ai fait des recherches sur le problème et trouvé sur le /var/log/pacman.log. J'ai lu le journal et constaté que le problème était:

...
[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 mise à jour a été interrompue, d'où le problème de liaison.

J'ai ensuite téléchargé le firmware à partir d' ici . J'ai extrait la bibliothèque manquante:

$ 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.59était un lien symbolique vers libicuuc.so.59.1, donc je suis passé libicuuc.so.59.1à /usr/lib/libicuuc.so.59.

En cours d'exécution, pacmanj'ai eu l'erreur qui libicudata.so.59manquait. J'ai extrait la bibliothèque manquante /usr/libet je pacmantravaillais :).

J'ai ensuite mis à jour le système pacman -Syuqet vérifié ldd /usr/bin/pacmanque toutes les bibliothèques étaient présentes. J'ai déplacé les bibliothèques v59 /usr/libet vérifié que cela pacmanfonctionnait.

Redémarrez avec les doigts croisés ... avec succès !!!

pacman -Sc et allez vous coucher avec le sourire :)

frustréMartien
la source
1

Dans le cas où vous avez un exécutable qui a besoin de cette version particulière de la bibliothèque (comme cela s'est produit dans mon cas), il existe un package aur pour cette version spécifique.

ivcha
la source
0

Résolution du problème avec pacman -Sc suivi de pacman -Syyu Vous ne savez pas pourquoi cela a résolu le problème.

alainsanguinetti
la source
0

Dans votre système, lib32-icu n'est pas installé. Installez simplement lib32-icu depuis pacman et tout problème sera résolu.

sudo pacman -S lib32-icu
Amar Hunter
la source
0

J'ai résolu ce problème à l'aide du lien suivant; ici

Selon cet article, la rétrogradation est une mauvaise idée et ce que vous devriez probablement faire est de reconstruire le package qui utilise la dépendance manquante ci-dessus. Le déclassement peut affecter plusieurs packages.

Kevin RED
la source