Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Possible Duplicate:
Can't execute some binaries in chroot environment (zsh: Not found)

Today I ran into something that has me stumped. A co-worker is working with a specific pre-compiled binary he downloaded (available here). On the Ubuntu 10.04 LTS Server he's working on, attempting to execute this file yields file-not-found, even with permissions set right.

And yet, when I attempt the same thing from OpenSUSE 11.4, it runs just fine. Running file on it gives me:

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

Both the Ubuntu and OpenSUSE boxes are 64-bit installs, and file returns the same information on both machines.

Which looks just fine to me. And on the opensuse box, LDD even gives me a short list of library files. Hand checking, all of those specified files also exist on the Ubuntu server. Strace output is different though:

Opensuse:

execve("./trid", ["./trid"], [/* 122 vars */]) = 0

Ubuntu (giving full path does not change result):

execve("./trid", ["./trid"], [/* 19 vars */]) = -1 ENOENT (No such file or directory)

What can cause a file like this to not be executable in this way?

share|improve this question
add comment

marked as duplicate by Gilles, sysadmin1138, enzotib, Michael Mrozek Sep 28 '11 at 3:01

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

1 Answer

Type

ldd ./trid

both on the openSuse and Ubuntu system.

I suspect you'll find that the latter is missing a library file.

share|improve this answer
    
That was my first guess. ldd on Ubuntu doesn't give anything terribly useful. Just "File is not a dynamic executable". –  sysadmin1138 Sep 27 '11 at 1:26
    
Sounds like the Ubuntu install somehow doesn't know what to do with 32-bit software. Which is odd since last time I checked x86-compatibility libraries were part of amd64's base files. –  Shadur Sep 27 '11 at 8:40
    
Turns out the libc6-i386 package wasn't installed. This instance was a 'minimal server' install, so lacked some packages. –  sysadmin1138 Sep 27 '11 at 23:46
    
Yeah, that'll do it. –  Shadur Sep 28 '11 at 5:01
add comment

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