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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top