Risposte:
Sei su un sistema a 64 bit e non hai il supporto della libreria a 32 bit installato.
(se non usi sudo nella tua installazione leggi la nota sotto)
La maggior parte dei sistemi Linux desktop nella famiglia Fedora / Red Hat:
pkcon install glibc.i686
Forse alcuni sistemi desktop Debian / Ubuntu ?:
pkcon install ia32-libs
Fedora o Red Hat più recente, CentOS:
sudo dnf install glibc.i686
RHEL precedente, CentOS:
sudo yum install glibc.i686
Ancora più vecchio RHEL, CentOS:
sudo yum install glibc.i386
Debian o Ubuntu:
sudo apt-get install ia32-libs
dovresti prenderti la (prima, principale) libreria di cui hai bisogno.
Chiunque abbia bisogno di installare glibc.i686o glibc.i386probabilmente si imbatterà anche in altre dipendenze della libreria. Per identificare un pacchetto che fornisce una libreria arbitraria, è possibile utilizzare
ldd /usr/bin/YOURAPPHERE
se non sei sicuro che sia dentro /usr/binpuoi anche ripiegare
ldd $(which YOURAPPNAME)
L'output sarà simile al seguente:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Controlla le librerie mancanti (ad es libSM.so.6. Nell'output sopra) e per ognuna devi trovare il pacchetto che lo fornisce.
Fedora / Red Hat Enterprise / CentOS:
dnf provides /usr/lib/libSM.so.6
o, su RHEL / CentOS precedenti:
yum provides /usr/lib/libSM.so.6
oppure, su Debian / Ubuntu:
Innanzitutto, installa e scarica il database per apt-file
sudo apt-get install apt-file && apt-file update
quindi cerca con
apt-file find libSM.so.6
Nota il percorso del prefisso /usr/libnel caso (normale); raramente, alcune librerie vivono ancora /libper ragioni storiche ... Sui sistemi tipici a 64 bit, vivono le librerie a 32 bit e le librerie a /usr/lib64 bit /usr/lib64.
(Debian / Ubuntu organizzano le librerie multiarchitettura in modo diverso.)
Quanto sopra dovrebbe darti un nome di pacchetto, ad esempio:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
In questo esempio il nome del pacchetto è libSMe il nome della versione a 32 bit del pacchetto èlibSM.i686 .
È quindi possibile installare il pacchetto per afferrare la libreria richiesta usando pkconin una GUI, o sudo dnf/yum/apt-getcome appropriato…. Es pkcon install libSM.i686. Se necessario, è possibile specificare la versione completamente. Es sudo dnf install ibSM-1.2.0-2.fc15.i686.
Alcune biblioteche avranno un designatore di "epoca" prima del loro nome; questo può essere omesso (i curiosi possono leggere le note in basso).
Per inciso, il problema che stai affrontando implica che il tuo database RPM (resp. DPkg / DSelect) è danneggiato o che l'applicazione che stai cercando di eseguire non è stata installata tramite il gestore pacchetti. Se non conosci Linux, probabilmente vorrai evitare di utilizzare software proveniente da fonti diverse dal gestore dei pacchetti, quando possibile ...
genere
su -c
ogni volta che vedi sudo, ad es.
su -c dnf install glibc.i686
Il designatore "epoca" prima del nome è un artefatto del modo in cui le librerie RPM sottostanti gestiscono i numeri di versione; per esempio
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
Qui, si 2:può omettere; giusto pkcon install libpng.i686o sudo dnf install libpng-1.2.46-1.fc16.i686. (Implica vagamente qualcosa del genere: ad un certo punto, il numero di versione del libpngpacchetto è stato spostato all'indietro e "epoca" ha dovuto essere incrementata per assicurarsi che la versione più recente fosse considerata "più recente" durante gli aggiornamenti. O qualcosa di simile è successo. Due volte .)
Aggiornato per chiarire e coprire le varie opzioni di gestione dei pacchetti in modo più completo (marzo 2016)
Ho appena riscontrato lo stesso problema su una macchina CentOS 6.4 a 64 bit appena installata. Un singolo comando yum risolverà questo oltre al 99% di problemi simili:
yum groupinstall "Librerie di compatibilità"
Prefisso con 'sudo' o esegui come root, a seconda di quale funziona meglio per te.
In generale, quando ricevi un errore del genere, fallo
yum provides ld-linux.so.2
quindi vedrai qualcosa di simile:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
e poi esegui semplicemente quanto segue come ha scritto BRPocock (nel caso ti stavi chiedendo quale fosse la logica ...):
yum install glibc.i686
Provare
$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
Spero che questo chiarisca.
Volevo solo aggiungere un commento in BRPocock, ma non ho i privilegi sufficienti.
Quindi il mio contributo è stato per tutti coloro che cercavano di installare IBM Integration Toolkit dal pacchetto IBM Integration Bus.
Quando si tenta di eseguire il comando "Installation Manager" dalla cartella / Integration_Toolkit / IM_Linux (il file da eseguire è "installa") si ottiene l'errore mostrato in questo post.
Ulteriori istruzioni per risolvere questo problema sono disponibili nella pagina Web di IBM: https://www-304.ibm.com/support/docview.wss?uid=swg21459143
Spero che questo aiuti a chiunque cerchi di installarlo.
Vorrei aggiungere per Debian è necessario almeno un compilatore nel sistema (secondo le librerie Debian Stretch e Jessie a 32 bit ).
Ho installato apt-get install -y gcc-multilibper eseguire il file eseguibile a 32 bit nel mio contenitore docker basato su debian: jessie.
Puoi anche installare OpenJDK 32-bit ( .i686) invece. Secondo il mio test, verrà installato e funzionerà senza problemi.
sudo yum install java-1.8.0-openjdk.i686
Nota:
Il pacchetto java-1.8.0-openjdk contiene solo Java Runtime Environment . Se si desidera sviluppare programmi Java, installare il pacchetto java-1.8.0-openjdk-devel .
Vedi qui per maggiori dettagli.