"No such file" when running a 32-bit program on a 64-bit system

Solution 1:

You're missing 32-bit support. Install libc6:i386, i.e. the 32-bit base library package, and all the other 32-bit libraries that Chrome needs (it's likely to be close to the dependencies of the Chromium package).

When you fail to execute a file that depends on a “loader”, the error you get may refer to the loader rather than the file you're executing.

  • The loader of a dynamically-linked native executable is the part of the system that's responsible for loading dynamic libraries. It's something like /lib/ld.so or /lib/ld-linux.so.2, and should be an executable file.
  • The loader of a script is the program mentioned on the shebang line, e.g. /bin/sh for a script that begins with #!/bin/sh.

The error message is rather misleading in not indicating that the loader is the problem. Unfortunately, fixing this would be hard because the kernel interface only has room for reporting a numeric error code, not for also indicating that the error in fact concerns a different file.

Once you install the 32-bit dynamic loader /lib/ld-linux.so.2, which is in the libc6:i386 package, you will at least get a non-misleading error message telling you of the other missing libraries.

Solution 2:

The fastest way to get to Gilles' solution is to install ia32-libs-multiarch. While this does pull in a lot of packages, it saves you the time to figure out all the different dependencies.