"No such file or directory" on files that exist?
Very likely you have a 64-bit only system (as opposed to a multilib one) and Your dynamic loader doesn't recognise the 32-bit binary as an executable. You'll need to install 32-bit version of glibc (which includes the dynamic linker/loader - and which one that should be you can see on the first line of output of strings binary
, by the way) and any other libraries the binary is linked against or a 64-bit version of the binary in question. Also see Getting "Not found" message when running a 32-bit binary on a 64-bit system for more information.
Related videos on Youtube
Comments
-
tkbx over 1 year
In the past day, I've found at least 4 binaries that say "bin-name: No such file or directory" when I try to run them. Even if I type part of the name and tab complete it, I get the same error. I'm on an x86_64 architecture.
Output of
file
:fez-09152013-bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x78612e4aac547367548dcc7cc3067c3cfcf2f177, stripped
Output of
strace
:execve("./fez-09152013-bin", ["./fez-09152013-bin"], [/* 23 vars */]) = -1 ENOENT (No such file or directory) dup(2) = 3 fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE) fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3fda17a000 lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory ) = 40 close(3) = 0 munmap(0x7f3fda17a000, 4096) = 0 exit_group(1) = ?
Output of
ldd
:Not a dynamic executable
Output of
strings
is way too long to indent, so here's a link: http://pastebin.com/t7MmugLYapt-get error:
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-i386 but it is not installable E: Unable to correct problems, you have held broken packages.
-
schaiba over 10 yearsIf the file isn't in PATH, try ./bin-name if you are in the directory where it resides, or enter its full path : /path/to/bin-name .
-
slm over 10 yearsI would also suggest running the command
strings bin-name
to see what the files might be -
michas over 10 yearsWhat OS? what is the output of
ls -l bin-name
andfile bin-name
andstrace bin-name
? -
ott-- over 10 yearsNot to forget
ldd bin-name
. -
tkbx over 10 years@michas I'm running Debian 64-bit (Crunchbang). Edited question to include info
-
tkbx over 10 years@ott-- Edited question to include info
-
ott-- over 10 years
file
saysdynamic
andldd
saysnot dynamic
. It could be a binary from an old ld-so version. So try thatstrings file | grep ld-linux
. -
Jeff Hewitt over 10 yearsHmmm... Could it be this issue?
-
tkbx over 10 years@ott-- It says
/lib/ld-linux.so.2
-
ott-- over 10 yearsSee my comment belows about installing the ia32-libs.
-
-
ott-- over 10 yearsIndeed, running
apt-get install ia32-libs
could solve this. -
tkbx over 10 years@ott-- I'm getting the error I'll add to my question. If I remove testing, experimental, and unstable from my sources, will it cause problems for packages installed from there?