En général, lorsque vous obtenez une erreur comme celle-ci, faites simplement
yum provides ld-linux.so.2
alors vous verrez quelque chose comme :
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
et ensuite vous exécutez simplement ce qui suit comme l'a écrit BRPocock (au cas où vous vous demanderiez quelle était la logique...) :
yum install glibc.i686
Essayez
$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
J'espère que ça s'éclaircira.
Vous êtes sur un système 64 bits et la prise en charge de la bibliothèque 32 bits n'est pas installée.
Pour installer la prise en charge (de base) des exécutables 32 bits
(si vous n'utilisez pas sudo dans votre configuration, lisez la note ci-dessous)
La plupart des systèmes Linux de bureau de la famille Fedora/Red Hat :
pkcon install glibc.i686
Peut-être certains systèmes de bureau Debian/Ubuntu ? :
pkcon install ia32-libs
Fedora ou Red Hat plus récent, CentOS :
sudo dnf install glibc.i686
Ancien RHEL, CentOS :
sudo yum install glibc.i686
Encore plus ancien RHEL, CentOS :
sudo yum install glibc.i386
Debian ou Ubuntu :
sudo apt-get install ia32-libs
devrait vous fournir la bibliothèque (première, principale) dont vous avez besoin.
Une fois que vous l'aurez, vous aurez probablement besoin de bibliothèques de support
Toute personne ayant besoin d'installer glibc.i686
ou glibc.i386
se heurtera probablement à d'autres dépendances de bibliothèque également. Pour identifier un package fournissant une bibliothèque arbitraire, vous pouvez utiliser
ldd /usr/bin/YOURAPPHERE
si vous n'êtes pas sûr que ce soit dans /usr/bin
vous pouvez également vous rabattre sur
ldd $(which YOURAPPNAME)
La sortie ressemblera à ceci :
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Recherchez les bibliothèques manquantes (par exemple, libSM.so.6
dans la sortie ci-dessus), et pour chacun, vous devez trouver le package qui le fournit.
Commandes pour trouver le package par famille de distribution
Fedora/Red Hat Enterprise/CentOS :
dnf provides /usr/lib/libSM.so.6
ou, sur les anciens RHEL/CentOS :
yum provides /usr/lib/libSM.so.6
ou, sur Debian/Ubuntu :
d'abord, installez et téléchargez la base de données pour apt-file
sudo apt-get install apt-file && apt-file update
puis chercher avec
apt-file find libSM.so.6
Notez le chemin du préfixe /usr/lib
dans le cas (habituel); rarement, certaines bibliothèques vivent encore sous /lib
pour des raisons historiques… Sur les systèmes 64 bits typiques, les bibliothèques 32 bits vivent en /usr/lib
et les bibliothèques 64 bits vivent dans /usr/lib64
.
(Debian/Ubuntu organisent différemment les bibliothèques multi-architectures.)
Installation des packages pour les bibliothèques manquantes
Ce qui précède devrait vous donner un nom de package, par exemple :
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
Dans cet exemple, le nom du package est libSM
et le nom de la version 32 bits du package est libSM.i686
.
Vous pouvez ensuite installer le package pour récupérer la bibliothèque requise en utilisant pkcon
dans une interface graphique, ou sudo dnf/yum/apt-get
le cas échéant…. Par exemple pkcon install libSM.i686
. Si nécessaire, vous pouvez spécifier la version entièrement. Par exemple sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Certaines bibliothèques auront un désignateur « époque » avant leur nom; cela peut être omis (les curieux peuvent lire les notes ci-dessous).
Remarques
Avertissement
Incidemment, le problème auquel vous êtes confronté implique soit que votre base de données RPM (resp. DPkg/DSelect) est corrompue, soit que l'application que vous essayez d'exécuter n'a pas été installée via le gestionnaire de packages. Si vous débutez avec Linux, vous voudrez probablement éviter d'utiliser des logiciels provenant de sources autres que votre gestionnaire de paquets, dans la mesure du possible...
Si vous n'utilisez pas "sudo" dans votre configuration
Saisissez
su -c
chaque fois que vous voyez sudo
, par exemple,
su -c dnf install glibc.i686
À propos de l'indicateur d'époque dans les noms de bibliothèque
L'indicateur "epoch" avant le nom est un artefact de la manière dont les bibliothèques RPM sous-jacentes gèrent les numéros de version ; par exemple.
2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files
Repo : fedora
Matched from:
Filename : /usr/lib/libpng.so.3
Ici, le 2:
peut être omis ; juste pkcon install libpng.i686
ou sudo dnf install libpng-1.2.46-1.fc16.i686
. (Cela implique vaguement quelque chose comme :à un moment donné, le numéro de version du libpng
le paquet a été restauré et "l'époque" a dû être incrémentée pour s'assurer que la version la plus récente serait considérée comme "la plus récente" lors des mises à jour. Ou quelque chose de similaire s'est produit. Deux fois.)
Mise à jour pour clarifier et couvrir plus complètement les différentes options du gestionnaire de packages (mars 2016)
Je viens de rencontrer le même problème sur une machine CentOS 6.4 64 bits fraîchement installée. Une seule commande yum résoudra ce problème ainsi que 99 % des problèmes similaires :
yum groupinstall "Bibliothèques de compatibilité"
Préfixez-le avec 'sudo' ou exécutez-le en tant que root, selon ce qui vous convient le mieux.