1

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...

1
  • Is ldd able to find all needed libraries? Dec 5, 2012 at 14:53

1 Answer 1

0

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".

3
  • 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, 2012 at 14:48
  • Does ldd correctly show all libraries ?
    – Eugene
    Dec 5, 2012 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, 2012 at 15:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .