29 votos

Error 'No such file or directory' en bash, pero el archivo existe?

En Ubuntu, obtengo un error 'No such file or directory' cuando intento ejecutar un comando.

Lo he comprobado con ls -la el archivo adb está ahí y tiene la flag 'x'. Entonces, ¿por qué estoy recibiendo un 'No such file or directory'?

~/Programs/android-sdk-linux_x86/platform-tools$ ./adb
 bash: ./adb: No such file or directory
~/Programs/android-sdk-linux_x86/platform-tools$ ls -la
 total 34120
 drwxrwxr-x 3 silverstri silverstri     4096 2011-10-08 18:50 .
 drwxrwxr-x 8 silverstri silverstri     4096 2011-10-08 18:51 ..
 -rwxrwxr-x 1 silverstri silverstri  3764858 2011-10-08 18:50 aapt
 -rwxrwxr-x 1 silverstri silverstri   366661 2011-10-08 18:50 adb
 -rwxrwxr-x 1 silverstri silverstri   906346 2011-10-08 18:50 aidl
 -rwxrwxr-x 1 silverstri silverstri   328445 2011-10-08 18:50 dexdump
 -rwxrwxr-x 1 silverstri silverstri     2603 2011-10-08 18:50 dx
 drwxrwxr-x 2 silverstri silverstri     4096 2011-10-08 18:50 lib
 -rwxrwxr-x 1 silverstri silverstri 14269620 2011-10-08 18:50 llvm-rs-cc
 -rwxrwxr-x 1 silverstri silverstri 14929076 2011-10-08 18:50 llvm-rs-cc-2
 -rw-rw-r-- 1 silverstri silverstri      241 2011-10-08 18:50 llvm-rs-cc.txt
 -rw-rw-r-- 1 silverstri silverstri   332494 2011-10-08 18:50 NOTICE.txt
 -rw-rw-r-- 1 silverstri silverstri      291 2011-10-08 18:50 source.properties

55voto

gaurav Puntos 6

El SDK de Android requiere bibliotecas de 32 bits. Probablemente estés en 64 bits y necesites las librerías de 32 bits. Aquí están las direcciones de solución de problemas de desarrollador.Android.com

Para Ubuntu 13.10 (Saucy Salamander) y superior, instale el libncurses5:i386 , libstdc++6:i386 y zlib1g:i386 paquetes utilizando apt-get:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

Para versiones anteriores de Ubuntu, instale el ia32-libs con apt-get:

apt-get install ia32-libs

16voto

Daniel Beck Puntos 72548

Es un archivo ejecutable que echa de menos las bibliotecas necesarias. Utilice ldd para ver lo que necesita, y luego proporcionar estos archivos.

4voto

Shawe Puntos 41
sudo apt-get install --reinstall libc6-i386

también es necesario para mí.

3voto

user240504 Puntos 31

Yo también veía lo mismo después de cambiar mi máquina de ubuntu de 32 bits a 64 bits. Bash reportaría 'No such file or directory' de archivos que claramente existían con el atributo execute.

sudo apt-get install --reinstall libc6-i386

Se ha solucionado el problema. Estas son las "GNU C Library: Bibliotecas compartidas de 32 bits para AMD64"

Parece que se trata de un error en bash. Ten en cuenta que también he cambiado el Shell por defecto de dash a bash usando

sudo dpkg-reconfigure dash

antes de intentar ejecutar el ejecutable de 32 bits. Así que no estoy seguro de si el problema habría ocurrido con el guión por defecto Shell.

1voto

Justin Buser Puntos 549

Para adb asegúrese de que tiene el SDK desempaquetado y de que ha ejecutado el SDK Manager para rellenar completamente el SDK. Además, asegúrese de que tiene instalado lo siguiente: A.) JDK 6 o superior B.) lib32stdc++6 C.) lib32ncurses5

hoffmanc fue el que más se acercó a acertar, no entiendo muy bien por qué se marca como correcta la respuesta de Daniel Beck cuando ni siquiera se acerca y no tiene nada que ver con el problema.

Por cierto, si intentas ejecutar un comando realmente inexistente (es decir:

# fakecommand

obtendrás: fakecommand: command not found, mientras que en tu situación la salida que estás viendo viene realmente de adb aunque no está muy claro que sea así.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X