DBD-Oracle - Re: DBD and Oracle Instantclient 10

Posted on Wed Dec 14 23:06:28 2005 by n8 in response to 1460 (See the whole thread of 18)
Re: DBD and Oracle Instantclient 10

I had that same problem at one point, Walter. I just posted my answers to the dbi-users list, but I'll paste them here too:

After a day of forehead-bashing I got DBD::Oracle to compile with the Instant Client on Red Hat Enterprise Linux 4 - though I suspect it will work with most other flavors. Here are my notes for the good of the next person (and me next time I go looking):

To simplify/standardize the layout of the files I used the RPMs Oracle provides. They scatter the files into /usr/lib/oracle, /usr/include/oracle, and /usr/share/oracle, so I had to make an adjustment in the Makefile.PL to find the .h files.

I used the pythian branch from the subversion repository (announced at http://www.cpanforum.com/threads/1130). Here's the output of svn diff - I don't have credentials to commit the change (nor do I want them!)

$ svn diff Makefile.PL Index: Makefile.PL =================================================================== --- Makefile.PL (revision 2309) +++ Makefile.PL (working copy) @@ -18,6 +18,12 @@ ## Changes made ## Adding in a few changes suggested by Andy Hassall <andy@andyh.co.uk> ## that will enable the compile to work for Windows version of the IC +## +## Nathan.Vonnahme at banner health dot com +## Dec 14 2005 +## tweak to find Oracle Instant Client 10.2.0.1 on Linux when installed via Oracle's RPMs, +## which scatter the instant client files into /usr/lib/oracle, /usr/include/oracle, and +## /usr/share/oracle # vim: ts=8:sw=4 @@ -382,6 +388,7 @@ $linkwith_msg = "-l$lib."; $opts{LIBS} = [ "-L$OH/$libdir -l$lib $syslibs"]; my $inc = "-I$OH\/sdk/include"; + $inc .= " -I/usr/include/oracle/$client_version_full/client"; # where Oracle's rpms put the .h + files $opts{INC} = "$inc -I$dbi_arch_dir"; }
I also had trouble with the environment variables; this is what finally worked:
ORACLE_HOME=/usr/lib/oracle/10.2.0.1/client/lib LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.1/client/lib
after those two changes, I could run `perl Makefile.PL` with no args and get a working makefile.
Direct Responses: 1807 | 1980 | 2210 | Write a response