Problem compiling DBD::Oracle on FreeBSD with Oracle 10g Instant Client

[email protected] (Eric Yellin)
Newsgroups perl.dbi.users
Message-ID <[email protected]>

Hi,


I am trying to compile DBD::Oracle that will work with Oracle 10g on 
FreeBSD 6.3


Here is what I have done so far:

1. Installed the 3 Oracle Instant Client ports:

- linux-oracle-instantclient-basic
- linux-oracle-instantclient-sdk
- linux-oracle-instantclient-sqlplus

These install as follows:
_The "basic files install in:_
/usr/compat/linux/usr/lib/Oracle/10.2.0.3/client/lib

_The sqlplus installes in _:
/usr/compat/linux/usr/lib/Oracle/10.2.0.3/client/bin

_The sdk split between:_
/usr/compat/linux/usr/include/Oracle/10.2.0.3/client/lib (the include 
directory)
and:
/usr/compat/linux/usr/share/Oracle/10.2.0.3/client/lib (the demo directory)

2. Downloaded latest DBD::Oracle (1.25)

3.  Set Environment variables as follows:
setenv LD_LIBRARY_PATH /usr/compat/linux/usr/lib/oracle/10.2.0.3/client/lib
setenv ORACLE_HOME /usr/compat/linux/usr/lib/oracle/10.2.0.3/client

4. Ran perl Makefile.PL for DBD:Oracle and recieved the follwoing error:
/"Unable to locate an oracle.mk, proc.mk or other suitable *.mk"/

5. changed the ORACLE_HOME variable to: setenv ORACLE_HOME 
/usr/compat/linux/usr/lib/oracle/10.2.0.3/client/lib and ran "perl 
Makefile.PL" again and now received the following message:
/"I can't find the header files I need in your Oracle installation.
You probably need to install some more Oracle components.
For Instant Client that means the SDK package...."/

6. Copied the "sdk" files directly from the ports "work" directory 
leaving them in the original structure and placing them under the 
/usr/compat/linux/usr/lib/oracle/10.2.0.3/client/lib directory and ran 
perl Makefile.PL again. Now it built the Makefile succesfully with a few 
warnings:

/WARNING: If you have problems you may need to rebuild perl with 
threading enabled.
WARNING: If you have problems you may need to rebuild perl with 
-Uusemymalloc.
WARNING: META_MERGE is not a known parameter.
'META_MERGE' is not a known MakeMaker parameter name./

7. Ran 'make' and it compiled smoothly.

8. Ran 'make test'  and got the following error:
/Failed to load Oracle extension and/or shared libraries:
install_driver(Oracle) failed: Can't load 
'/home/packages/Oracle/DBD-Oracle-1.25/blib/arch/auto/DBD/Oracle/Oracle.so' 
for module DBD::Oracle: Shared object "libdl.so.2" not found, required 
by "libclntsh.so.10.1" at /usr/local/lib/perl5/5.8.8/mach/DynaLoader.pm 
line 230.
  at (eval 9) line 3
Compilation failed in require at (eval 9) line 3.
Perhaps a required shared library or dll isn't installed where expected
  at t/01base.t line 19
The remaining tests will probably also fail with the same error./

The libdl.so.2 file is located in "/usr/compat/linux/lib" and the 
compiled DBD::Oracle module does 'know' not see that directory.

How can I move on from here to link the necessary shared libraries 
during runtime ? (Tried doing this with symlinks, but kept getting 
errors and eventually reached a dead end where symlinking did not help 
anymore. I assume there must be a different way to do it)

Thanks,  Eric
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.