On 03/10/10 17:45, Eric Yellin wrote: > > > 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
You normally don't need to set ORACLE_HOME for instant client. Shouldn't that be /usr/compat/linux/usr/lib/oracle/10.2.0.3, i.e. no client/lib on the end? > 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./ I guess the META_MERGE warning is because your ExtUtils::MakeMaker does not support it. If that is the case DBD::Oracle should only add META_MERGE after testing ExtUtils::MakeMaker version. > 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 > > > Undo the changes you made and try again without client/lib in your LD_LIBRARY_PATH and without setting ORACLE_HOME. Martin -- Martin J. Evans Easysoft Limited http://www.easysoft.com