Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've downloaded a game (Shank) but the bin file doesn't run. The error that is shown when I try to launch the executable is:

bash: ./shank-linux-120720110-1-bin: No such file or directory
share|improve this question
Maybe "chmod u+x ./shank*bin" first? – agent86 May 7 '12 at 19:35
also shouldn't that be '.bin' rather than '-bin', maybe it's just a typo – Anake May 7 '12 at 20:25
Thank you for your reply. I've done the command you said Agent86 but I have the same result. I've downloaded also the .deb file but there is a problem too. I don't know what problem has this game. – Francesco May 7 '12 at 21:29
Please confirm whether you're running a 64-bit installation (that's the most common case for this problem). – Gilles May 7 '12 at 21:49
Yes I confirm that I'm using a 64-bit architecture on my laptop. – Francesco May 7 '12 at 22:31

You're probably trying to run a 32-bit binary on a 64-bit system that doesn't have 32-bit support installed.

There are three cases where you can get the message “No such file or directory”:

  • The file doesn't exist. I presume you've checked that the file does exist (perhaps because the shell completes it).
  • There is a file by that name, but it's a dangling symbolic link.
  • The file exists, and you can even read it (for example, the command file shank-linux-120720110-1-bin displays something like “ELF 32-bit LSB executable …”), and yet when you try to execute it you're told that the file doesn't exist.

The error message in this last case is admittedly confusing. What it's telling you is that a key component of the runtime environment necessary to run the program is missing. Unfortunately, the channel through which the error is reported only has room for the error code and not for this extra information that it's really the runtime environment that's to blame. If you want the technical version of this explanation, read Getting “Not found” message when running a 32-bit binary on a 64-bit system.

The file command will tell you just what this binary is. With a few exceptions, you can only run a binary for the processor architecture that your release of Ubuntu is for. The main exception is that you can run 32-bit (x86, a.k.a. IA32) binaries on 64-bit (amd64, a.k.a. x86_64) systems.

In Ubuntu up to 11.04, to run a 32-bit binary on a 64-bit installation, you need to install the ia32-libs package Install ia32-libs. You may need to install additional libraries (you'll get an explicit error message if you do).

Since 11.10 (oneiric) introduced multiarch support, you can still install ia32-libs, but you can choose a finer-grained approach, it's enough to get libc6-i386** Install libc6-i386 (plus any other necessary library).

share|improve this answer
Thanks for a great answer, Gilles. While I haven't experienced this problem (yet!), I have filed your answer away for future reference. – Jim C May 7 '12 at 21:56
Thank you for your exhaustive answer! The file bin I've downloaded was the only one available in this format(bin). So i think is good for all architectures. I've also downloaded the .deb file for my architecture (64bit) but with different error. At this point I think that the game is affected by some bugs or I don't be able to install this game. Now I try to download libc6-i386 and I still try to install it. I will write again if there are significant changes. Thank you for you time. – Francesco May 7 '12 at 22:08
I've found the solution! It's too long to write, but if anyone needs it I'm ready to help. – Francesco May 9 '12 at 17:34
@Francesco Please do post the solution! It is likely to help other people trying to run Shank on Ubuntu. It's perfectly ok to answer your own question. – Gilles May 9 '12 at 18:19
You can use ldd to check if you're missing a library. ldd might say something like => not found among others – EnabrenTane Feb 3 at 22:45

64 bit Ubuntu Multiarch systems

Follow this answer only if the output of file file-name shows,

file-name: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped

To run 32bit executable file in a 64 bit multi-arch Ubuntu system, you have to add i386 architecture and also you have to install libc6:i386,libncurses5:i386,libstdc++6:i386 these three library packages.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
share|improve this answer
I would use sudo for the last command : launching a 32bit binary (so obviously not compiled by you or Ubuntu) as sudo could be risky. (well, even as non root, admitedly) – alci May 7 '14 at 16:58
what ever it may be at the last but it works. – Avinash Raj May 7 '14 at 17:01

By installing the deb for 32 bit I realized I was missing some libraries (in addition to ia32-libs and libc6). I first solved this problem by giving this command:

sudo apt-get install -f          

Then I got another error:

Message: SDL_GL_LoadLibrary 
Error: Failed loading

Obviously, these libraries were properly installed. Without going into details I had to link the libraries by hand. I realized then that could also an easier solution through Synaptic install the following packages:

libgl1-mesa-dri: i386.

After that the next problem was the black screen while playing, which I solved by replacing the executable in /Shank/bin with this:

I hope it will be useful to someone. If you need more help or more details please feel free to contact me.

share|improve this answer

Here's a transcript showing a bit more about the nature of the problem, and how to fix it as of Ubuntu 16.04. Notice that even though file reports "dynamically linked", ldd reports "not a dynamic executable".

$ ./myprogram
bash: myprogram: No such file or directory

$ file myprogram
myprogram: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/, for GNU/Linux 2.2.5, not stripped

$ ldd myprogram
    not a dynamic executable

Once you install libc6:i386, things start improving...

$ sudo apt-get install libc6:i386 # the initial fix

$ ldd myprogram =>  (0xf77fd000) => /lib/i386-linux-gnu/ (0xf7626000)
    /lib/ (0x56578000)

$ ./myprogram
myprogram: error while loading shared libraries: cannot open shared object file: No such file or directory

To complete the job, you may need to identify and install additional libraries one at a time...

$ sudo apt-get install libstdc++6:i386 ## may require various additional libs

$ ./myprogram
... works correctly ...

I don't know if there is a systematic way of identifying the correct libraries to install. There is a bit of guesswork mapping the error messages to package names (tab completion helps).

share|improve this answer
ldd (incorrectly) reports "not a dynamic executable". – nobar Jun 9 at 15:42

try this command, it works

   sudo apt-get update
   sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
share|improve this answer
-1. As this currently stands, this appears to be unrelated to the question. – gertvdijk Mar 26 '14 at 15:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.