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

I have a 32 bits binary (running on a 64 bits host) that fails to start when started alone, returning an error when loading a shared library (cannot open shared object file: No such file or directory). But it runs perfectly when I start it using ltrace or strace (I tried to find the point of failure)...

What's wrong? I checked the library exist, I tried to add it to the LD_LIBRARY_PATH, I also checked /lib/ld-linux.so.2 exists...

The host is running RedHat-EL 5.6...

share|improve this question
    
Is ldd able to find all needed libraries? –  Christophe Drevet Dec 5 '12 at 14:53

1 Answer 1

You need 32-bit version of libraries to run 32-bit applications on 64-bit system. Unfortunately Redhat doesn't have package like ia32-libs which would install most of them, it is supposed that you should install all 32-bit applications with yum and it will install the appropriate libraries for you. If your application is third-party, try installing 32-bit version of each library it needs, they usually have .i586 suffix, so you execute something like "yum install libusb.i586".

share|improve this answer
    
I have the 32 bits libraries. Without them it should not run when started using ltrace/strace. It looks like a cache problem, but I can't find the library that failed in the ld cache, so it's in another cache... –  francois Dec 5 '12 at 14:48
    
Does ldd correctly show all libraries ? –  Eugene Dec 5 '12 at 14:57
    
Yes. The executable is on a NFS share, and the problem seems to have disapeared... It really looks like a cache issue, but as it now works, it becomes hard to trace it further... Anyway, thanks for the help. –  francois Dec 5 '12 at 15:28

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.