in reply to DBD::Oracle install fail

The symbol kgefac_ should be in the Oracle shared library libclntsh.so.

With objdump -t (or nm) you can find out whether libclntsh.so does in fact provide the symbol, or not (e.g. wrong lib version):

$ objdump -t libclntsh.so.10.1 | grep kgefac_

(first find out where the lib resides, of course)

And ldd will tell you if your Oracle.so maybe hasn't been linked against libclntsh.so at all (problem at build time):

$ ldd /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/ +Oracle/Oracle.so

(In case it has been linked properly (so it would try to load the lib), but the lib cannot be found at runtime, you should have gotten a different error ("... cannot open shared object file: No such file or directory", or some such).)

Replies are listed 'Best First'.
Re^2: DBD::Oracle install fail
by expresspotato (Beadle) on Jan 18, 2011 at 18:57 UTC
    This may have something to do with me manually editing the Makefile to point to /opt/oracle/product/10g/lib/ instead of where it was looking /opt/oracle/product/10g/lib32/ Is there a better way (say in Makefile.PL) rather than Makefile to make these changes

      The only thing I've ever had to do to get DBD::Oracle installed was set ORACLE_HOME. Its always installed fine for me after that.