Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have a server machine with ubuntu 9.10. I am trying to put in place an executable, which turns out to be the latest flashplayer (debugger version).

Somehow the file appears as present and executable, but when launching it the console indicates that the files does not exist:

rodrigo@ns360773:~/t_fplayer$ pwd
/home/rodrigo/t_fplayer
rodrigo@ns360773:~/t_fplayer$ ls -lh
total 12M
-rwxr-xr-x 1 rodrigo rodrigo 12M 2011-07-09 11:35 flashplayerdebugger
rodrigo@ns360773:~/t_fplayer$ ./flashplayerdebugger
-bash: ./flashplayerdebugger: No such file or directory
rodrigo@ns360773:~/t_fplayer$ ldd flashplayerdebugger
       not a dynamic executable

using the same executable (copied via ssh) in my local machine works fine.

Any idea of what is going on? What can explain this behaviour?

Any idea how to fix this?

share|improve this question
1  
Run $ file ./flashplayerdebugger and see what file thinks it is. –  EEAA Jul 9 '11 at 21:53
    
~/t_fplayer$ file flashplayerdebugger flashplayerdebugger: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped –  rodrigob Jul 9 '11 at 23:12
    
indeed this seems to be 64bits vs 32bits problem. Thanks for point this out. I am quite surprised by the error message. –  rodrigob Jul 9 '11 at 23:14

3 Answers 3

up vote 6 down vote accepted

Check the architecture: You'll get that message running an x86 binary on an AMD64 system if you don't have compatibility libraries installed.

Also Ubuntu 9.04 is no longer updated, so you might want to update it.

share|improve this answer
    
The package to install is ia32-libs (or at least libc6-i386 and whatever other libraries are required). Karmic is still available from archive.ubuntu.com, but I second the recommendation to upgrade to 10.04 LTS (lucid). –  Gilles Jul 9 '11 at 22:21
    
How come that bash does not say "32 bits on a 64 bits machine" or something similar instead of the (very misleading) "no such file" ? –  rodrigob Jul 9 '11 at 23:13
    
@rodrigob Why don't you submit a patch to bash to that effect? –  Douglas Leeder Jul 10 '11 at 8:09

Static or dynamic, it still makes use of a dynamically-loaded "interpreter", which on Linux is usually named ld-linux.so.VERSION. If you have an executable which requires a version of the interpreter that isn't present, as when you try to use a newer binary on an old system, you will get that error because the interpreter isn't found. (And the error message is unfortunate but not fixable unless the kernel is extended with a better error reporting API; all the shell knows is that it got ENOENT in response to execve("./flashplayerdebugger", ...).) So my guess is you're trying to run a binary compiled for Ubuntu 11.x on your old server, and that's a lost cause — you will need to get one compiled for Ubuntu 9.10.

share|improve this answer
    
The interpreter version hasn't changed in ages. A binary compiled for Ubuntu 11.04 might fail due to missing libraries, but not due to a missing interpreter. Since the kernel recognized the binary format but the runtime system didn't, the most likely explanation is that this is an amd64 system which doesn't have the 32-bit runtime support installed. –  Gilles Jul 9 '11 at 22:17

This is probably due to missing 32-bit environment. You could try to use strace to find what exacly is missing: strace ./flashplayerdebugger. You should see there some open()s for non-existent libs.

share|improve this answer

Your Answer

 
discard

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.