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

francois
  • 51
  • 3

1 Answers1

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

Eugene
  • 491
  • 1
  • 3
  • 11
  • 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 05 '12 at 14:48
  • Does ldd correctly show all libraries ? – Eugene Dec 05 '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 05 '12 at 15:28