3

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/t7MmugLY

apt-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.
Anthon
  • 79,293
tkbx
  • 10,847

1 Answers1

4

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.

peterph
  • 30,838
  • Indeed, running apt-get install ia32-libs could solve this. – ott-- Sep 20 '13 at 22:22
  • @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? – tkbx Sep 20 '13 at 23:12