Vous êtes sur un système 64 bits et la prise en charge des bibliothèques 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 Debian / Ubuntu de bureau?:
pkcon install ia32-libs
Fedora ou plus récent Red Hat, 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 saisir la (première, principale) bibliothèque dont vous avez besoin.
Une fois que vous avez cela, vous aurez probablement besoin de bibliothèques de support
Toute personne ayant besoin d'installer glibc.i686
ou rencontrera glibc.i386
probablement d'autres dépendances de bibliothèque, ainsi. Pour identifier un package fournissant une bibliothèque arbitraire, vous pouvez utiliser
ldd /usr/bin/YOURAPPHERE
si vous n'êtes pas sûr que c'est dedans, /usr/bin
vous pouvez aussi 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
Vérifiez les bibliothèques manquantes (par exemple libSM.so.6
dans la sortie ci-dessus), et pour chacune d'elles, vous devez trouver le paquet qui la 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:
tout 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 recherchez 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 /usr/lib
et les bibliothèques 64 bits vivent /usr/lib64
.
(Debian / Ubuntu organisent différemment les bibliothèques multi-architectures.)
Installation de 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 estlibSM.i686
.
Vous pouvez ensuite installer le package pour récupérer la bibliothèque requise en utilisant pkcon
une interface graphique, ou sudo dnf/yum/apt-get
selon le cas…. Par ex pkcon install libSM.i686
. Si nécessaire, vous pouvez spécifier la version entièrement. Par ex sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Certaines bibliothèques auront un désignateur «d'époque» avant leur nom; cela peut être omis (les curieux peuvent lire les notes ci-dessous).
Remarques
Attention
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 êtes nouveau sur 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
Type
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 «d'époque» avant le nom est un artefact de la façon 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
paquet a été annulé et l '«époque» a dû être incrémentée pour s'assurer que la version la plus récente serait considérée comme «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)