runtime linker errors

Hey guys

I have a solaris 10 OS, with a zone configured. In that zone, I am trying to install an Oracle Client. However, when I run the oracle installer, I get the following error:

ld.so.1: java: fatal: libexpat.so.0: open failed: No such file or directory
ld.so.1: java: fatal: libfreetype.so.6: open failed: No such file or directory
ld.so.1: java: fatal: libexpat.so.0: open failed: No such file or directory
ld.so.1: java: fatal: relocation error: file /usr/lib/64/libfontconfig.so: symbol XML_ParserCreate: referenced symbol not found

I have googled and googled for hours. It looks like the issue is that the runtime linker ld expects libexpat.so.0 and libfreetype.so.6 to be somewhere else, but I have no idea about the last one, libfontconfig.so. So i tried setting LD_LIBRARY_PATH which didn't work. I then tried adding the path to these libraries using crle, but that didn't work either. Finally, I tried adding a link to the libraries, in where ld was looking for them. First, from within the zone:

-bash-3.00# ln -s /usr/local/lib/libexpat.so.0 /usr/lib
ln: cannot create /usr/lib/libexpat.so.0: Read-only file system

and again from the global zone:

-bash-3.00# cd /export/home/zonename/root/
-bash-3.00# ln -s usr/local/lib/libexpat.so.0 usr/lib
ln: cannot create usr/lib/libexpat.so.0: Read-only file system

So... can anyone help me:

  • Change the zone's /lib to read/write
  • add the library to the crle / library path and have it work
  • Tell me if I'm on the right track at least (ie, that it is a problem with where ld is looking)
  • anything else to help fix it.

On a side note, the Oracle Client I'm trying to install is 11g. I previously tried 10g and had that work beautifully. Unfortunately, 10g is actually incompatible with the next thing i'll be putting in the zone.

Cheers, I'd appreciate any help you can offer

FWIW, I've run into this error before and it is usually due to the LD_LIBRARY_PATH var missing or miss configured. But it could also be that the libraries are not on your system.

Try to find those libraries on your system. If they are on your system, change/create the LD_LIBRARY_PATH var so that the dirs containing the libraries are at the begining of the var (always remember to end that var with /usr/lib:/lib).

If the libraries are NOT on your system, find the software and install the libraries. Then, change LD_LIBRARY_PATH and compile again.

HTH

Yeah, I know that the libraries are on the system. As I mentioned, I did try setting LD_LIBRARY_PATH. I'm not sure if I made it end with "/usr/lib:/lib" though, so I'll give it another try.

---------- Post updated at 10:18 AM ---------- Previous update was at 08:55 AM ----------

ok, so retrying setting LD_LIBRARY_PATH helped a little. I guess... I still get similar errors:

ld.so.1: java: fatal: /usr/local/lib/libexpat.so.0: wrong ELF class: ELFCLASS32
ld.so.1: java: fatal: /usr/sfw/lib/libfreetype.so.6: wrong ELF class: ELFCLASS32
ld.so.1: java: fatal: /usr/local/lib/libexpat.so.0: wrong ELF class: ELFCLASS32
ld.so.1: java: fatal: relocation error: file /usr/lib/64/libfontconfig.so: symbol XML_ParserCreate: referenced symbol not found

I would assume that this means I installed 32 bit libraries expat and freetype, but I need 64?

That said, the last error is still the same, the relocation error. Given that expat is a xml parsing library, is the last error just because of not finding expat?

Cheers

---------- Post updated at 10:23 AM ---------- Previous update was at 10:18 AM ----------

don't worry lol. Changed the paths i was adding to LD_LIBRARY_PATH to add the /sparcv9/ to the extra paths. Worked.

I'll probably be back later though for more help.