99 votos

"No such file or directory" pero existe

Simplemente quiero ejecutar un ejecutable desde la línea de comandos, ./arm-mingw32ce-g++ pero luego recibo el mensaje de error,

bash: ./arm-mingw32ce-g++: No such file or directory

Estoy ejecutando Ubuntu Linux 10.10. ls -l lista

-rwxr-xr-x 1 root root  433308 2010-10-16 21:32 arm-mingw32ce-g++

Usando sudo ( sudo ./arm-mingw32ce-g++ ) da

sudo: unable to execute ./arm-mingw32ce-g++: No such file or directory

No tengo ni idea de por qué el sistema operativo no puede ver el archivo cuando está ahí. ¿Alguna idea?

83voto

Gilles Puntos 37537

Este error puede significar que ./arm-mingw32ce-g++ no existe (pero lo hace), o que existe y es un ejecutable enlazado dinámicamente reconocido por el kernel pero cuyo cargador dinámico no está disponible. Puede ver qué cargador dinámico se requiere ejecutando ldd /arm-mingw32ce-g++ ; cualquier cosa marcada not found es el cargador dinámico o una biblioteca que necesita instalar.

Si intentas ejecutar un binario de 32 bits en una instalación amd64:

  • Hasta Ubuntu 11.04, instale el paquete ia32-libs .
  • En Ubuntu 11.10, instale ia32-libs-multiarch .
  • A partir de la versión 12.04, instale ia32-libs-multiarch o seleccionar un conjunto razonable de :i386 además de los paquetes :amd64 paquetes.

32voto

h3xh4wk Puntos 516

Me encontré con este error cuando estaba tratando de construir la fuente de Selenium en Ubuntu. El simple Shell ShellscriptShell con el shebang correcto no fue capaz de ejecutarse incluso después de haber cubierto todos los requisitos previos.

file file-name # helped me in understanding that CRLF ending were present in the file.

Abrí el archivo en Vim y pude ver que sólo porque una vez edité este archivo en una máquina Windows, estaba en formato DOS. He convertido el archivo a formato Unix con el siguiente comando:

dos2unix filename # actually helped me and things were fine.

Espero que cuando editemos archivos entre plataformas tengamos cuidado también con los formatos de los archivos.

20voto

Zoltán Puntos 2915

Este error también puede ocurrir si se intenta ejecutar un script y el shebang está mal escrito. Asegúrese de que dice #!/bin/sh , #!/bin/bash o cualquier intérprete que esté utilizando.

8voto

djlauk Puntos 804

Tuve el mismo mensaje de error al intentar ejecutar un script de Python -- este no era el caso de uso previsto por @Warpspace (ver otros comentarios), pero esto estaba entre los primeros resultados de mi búsqueda, así que tal vez alguien lo encuentre útil.

En mi caso fueron las terminaciones de línea de DOS ( \r\n en lugar de \n ) que la línea del shebang ( #!/usr/bin/env python ) se tropezaría. Una simple dos2unix myfile.py lo arreglé.

4voto

icc97 Puntos 1602

Tengo el mismo error para un simple bash script que no tendría problemas de 32/64 bits. Esto se debe posiblemente a que el script que estás intentando ejecutar tiene un error. Este mensaje en el foro de ubuntu indica que con los archivos normales script puedes añadir 'sh' delante y puede que obtengas alguna salida de depuración de la misma, por ejemplo

$ sudo sh arm-mingw32ce-g++

y ver si obtienes alguna salida.

En mi caso el problema real era que el archivo que intentaba ejecutar estaba en formato Windows y no en linux.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X