CentOS 64 bit interprete Bad Elf
-
26-10-2019 - |
Domanda
Ho appena installato CentOS 6 versione a 64 bit, sto cercando di installare un'applicazione a 32 bit su un computer a 64 bit e ottenuto questo errore:
/lib/ld-linux.so.2: cattivo interprete ELF: No such file or directory
Sono nuovo di linux. Come posso risolvere questo?
Soluzione
siete su un sistema a 64 bit, e non hanno il supporto libreria a 32 bit installato.
Per installare il supporto (base) per 32-bit eseguibili
(se non si utilizza sudo nella configurazione leggere nota sotto)
La maggior parte dei sistemi Linux desktop della famiglia Fedora / Red Hat:
pkcon install glibc.i686
Forse qualche scrivania sistemi Debian / Ubuntu:?
pkcon install ia32-libs
Fedora o più recente Red Hat, CentOS:
sudo dnf install glibc.i686
vecchio RHEL, CentOS:
sudo yum install glibc.i686
Ancora più antica RHEL, CentOS:
sudo yum install glibc.i386
Debian o Ubuntu:
sudo apt-get install ia32-libs
dovrebbe prendere la (prima, principale) libreria di cui avete bisogno.
Una volta che avete che, probabilmente bisogno di supporto libs
Chiunque abbia bisogno di installare o glibc.i686
glibc.i386
probabilmente incorrere in altre dipendenze di librerie, pure. Per identificare un pacchetto che fornisce una libreria di arbitrario, è possibile utilizzare
ldd /usr/bin/YOURAPPHERE
se non sei sicuro che sia in /usr/bin
si può anche ripiegare su
ldd $(which YOURAPPNAME)
L'output sarà simile a questa:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Verifica librerie mancanti (ad esempio libSM.so.6
nell'output sopra), e per ciascuno è necessario trovare il pacchetto che lo fornisce.
Comandi per trovare il pacchetto per famiglia di distribuzione
Fedora / Red Hat Enterprise / CentOS:
dnf provides /usr/lib/libSM.so.6
o, più anziani RHEL / CentOS:
yum provides /usr/lib/libSM.so.6
o, su Debian / Ubuntu:
Per prima cosa, installare e scaricare il database per apt-file
sudo apt-get install apt-file && apt-file update
quindi cercare con
apt-file find libSM.so.6
Si noti il ??percorso /usr/lib
prefisso nel (solito) caso; Raramente, alcune librerie vivono ancora sotto /lib
per ragioni storiche ... Nei sistemi tipici a 64 bit, le librerie a 32 bit vivono nelle biblioteche /usr/lib
e 64 bit vivono in /usr/lib64
.
(Debian / Ubuntu organizzare diversamente librerie multi-architettura.)
Installazione dei pacchetti mancanti librerie
È possibile che questo dovrebbe darvi una nome del pacchetto, per 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 è libSM
e il nome della versione a 32 bit del pacchetto è libSM.i686
.
È quindi possibile installare il pacchetto di afferrare la libreria necessaria utilizzando pkcon
in una GUI, o sudo dnf/yum/apt-get
a seconda dei casi .... Es pkcon install libSM.i686
. Se necessario, è possibile specificare la versione completamente. Per esempio sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Alcune librerie avrà un designatore “epoca” prima del loro nome; questo può essere omesso (i curiosi in grado di leggere le note di seguito).
Note
Attenzione
Incidentially, il problema che si trovano ad affrontare sia implica che il numero di giri (resp. Dpkg / DSelezionare) database è danneggiato, o che l'applicazione che si sta cercando di correre non è stato installato tramite il gestore di pacchetti. Se siete nuovi a Linux, probabilmente si vuole evitare l'uso di software provenienti da fonti diverse da vostro gestore di pacchetti, quando possibile ...
Se non si usa "sudo" nel set-up
Tipo
su -c
ogni volta che vedi sudo
, per esempio,
su -c dnf install glibc.i686
A proposito del designatore epoca in nomi di libreria
Il designatore “epoca” prima del nome è un artefatto del modo in cui le librerie RPM sottostanti gestire 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, il 2:
può essere omesso; basta pkcon install libpng.i686
o sudo dnf install libpng-1.2.46-1.fc16.i686
. (Implica vagamente qualcosa del tipo: ad un certo punto, il numero di versione del pacchetto libpng
rotolato all'indietro, e il “epoca” ha dovuto essere incrementato per assicurarsi che la versione più recente sarebbe stato considerato “nuovo” durante gli aggiornamenti o qualcosa di simile è accaduto.. Due volte.)
Aggiornamento per chiarire e coprire le varie opzioni di package manager più pienamente (marzo, 2016)
Altri suggerimenti
appena incontrato lo stesso problema su una CentOS 6.4 computer a 64 bit appena installato. Un singolo comando yum risolverà questo oltre il 99% dei problemi simili:
yum groupinstall "librerie di compatibilità"
In ogni prefisso questo con 'sudo' o eseguito come root, a seconda di quale funziona meglio per voi.
In generale, quando si ottiene un errore come questo, basta fare
yum provides ld-linux.so.2
quindi vedrete qualcosa di simile:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
e poi basta solo eseguire il seguente come BRPocock ha scritto (nel caso ve lo stiate chiedendo quello che la logica era ...):
yum install glibc.i686
Prova
$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
Spero che questo cancella.
Volevo solo aggiungere un commento a BRPocock, ma non ho i privilegies sufficienti.
Quindi, il mio contributo è stato per tutti cercando di installare IBM Integration Toolkit dal fascio di integrazione degli autobus di IBM.
Quando si tenta di eseguire il comando "Installation Manager" dalla cartella / Integration_Toolkit / IM_Linux (il file da eseguire è "install") si ottiene l'errore mostrato in questo post.
Ulteriori istruzioni per risolvere questo problema che troverete in questa pagina Web di IBM: https://www-304.ibm.com/support/docview.wss ? uid = swg21459143
Spero che questo aiuti per chiunque si tenta di installare questo.
sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc ++. So.6
Vorrei aggiungere per Debian è necessario almeno un compilatore nel sistema (secondo librerie Debian stirata e Jessie a 32 bit ).
Ho installato apt-get install -y gcc-multilib
al fine di eseguire a 32 bit file eseguibile nel mio container finestra mobile basata su Debian:. Jessie
È anche possibile installare OpenJDK a 32-bit (.i686
), invece. Secondo la mia prova, verrà installato e funziona senza problemi.
sudo yum install java-1.8.0-openjdk.i686
Nota:
Il java-1.8.0-openjdk pacchetto contiene solo il Java Runtime Environment . Se si desidera sviluppare programmi Java quindi installare il java-1.8.0-openjdk-devel pacchetto.
qui per ulteriori dettagli.