Il mio blog-spazio.

[Pinguino] Eseguibile che non và: No such file or directory - File o directory non esistente

Ciao,
avete un eseguibile precompilato che non vuole partire?
Pur avendo dato a questo i permessi, vi viene fuori
File o directory non esistente
ma il file è lì, c'è.
Non siete impazziti.

Probabilmente stai tentando di eseguire un binario a 32 bit
su un sistema a 64 bit che non ha il supporto a 32 bit installato.

Ma partiamo dalle basi:
Esistono tre possibilità in cui è possibile ottenere il messaggio "File o directory non esistente"
se avete OS in Inglese "No such file or directory"
vediamo quali sono:

1)
Il file non esiste. Presumo che tu abbia controllato che il file esista.

2)
C'è un file con quel nome, ma è un link simbolico pendente (cancellato quindi, collegamento nullo)

3)
Manca un componente chiave dell'ambiente di runtime necessario per eseguire il programma.


Io sono su Debian, per cui farò così per risolvere (vale anche per ubuntu)
prima di tutto controllo di cosa si tratta
dando il comando
file nomedelleseguibile

se non avete il tool file installato date prima:
apt-get install file




Premesso che, un binario compilato per un tipo di architettura,
può essere eseguito solo dalla medesima.

Esiste solo un eccezione, ed è questa:
un processore x86 a 64bit (parlo di amd64 e x86_64)
può eseguire software compilato sempre su processori x86 ma a 32bit (quindi x86 e IA32)

Per farlo, si dovrà installare il pacchetto
ia32-libs
per poter avere il giusto ambiente per eseguire questi binari.

Potrebbe non essere abbastanza,
dipende da che Distribuzione avete, nel caso dovrete installare anche libc6-i386.

per cui
sudo apt-get install ia32-libs
sudo apt-get install libc6-i386



Update:
Ad oggi si usano i seguenti:
lib32z1 lib32ncurses5

quindi:

sudo apt-get install lib32ncurses5
sudo apt-get install lib32z1




Ciao!