On Thu, Dec 29, 2005 at 03:22:21PM +0100, Honza Pazdziora wrote: > On Wed, Dec 28, 2005 at 11:11:31PM +0000, Tim Bunce wrote: > > http://www.data-plan.com/public/DBD-Oracle-1.17.tar.gz > > > > =head1 Changes in DBD-Oracle 1.17 (svn rev 2334) > > [...] > > > Any and all testing would be greatly appreciated, but especially > > testing of building against Oracle Instant Client and Oracle XE > > on a range of platforms. > > Hello Tim, > > I have Fedora Core 4 (plus some rawhide updates to FC5) machine with > Oracle XE installed from .rpm > > oracle-xe-10.2.0.1-0.1 > > Using ORACLE_HOME of the .rpm installation > > /usr/lib/oracle/xe/app/oracle/product/10.2.0/server > > the perl Makefile.PL and make work, but make test fails with > > t/01base................Failed to load Oracle extension and/or shared > libraries:install_driver(Oracle) failed: Can't load > '/tmp/DBD-Oracle-1.17/blib/arch/auto/DBD/Oracle/Oracle.so' for module > DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file > or directory at /usr/lib/perl5/5.8.6/i386-linux-thread-multi/DynaLoader.pm > line 230. > at (eval 1) line 3 > Compilation failed in require at (eval 1) line 3. > Perhaps a required shared library or dll isn't installed where expected > at t/01base.t line 19 > > This is easily fixed by using > > LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib
I was presuming that people would have that already. > when running that make test, and better yet, by using > > LD_RUN_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib > > (or equivalent) when making the library. Yes, having the Makefile set LD_RUN_PATH for the link would suit most people most of the time. Can anyone off the equivalent env var for any other (non-linux, non-solaris) platforms? > Since the oracle-xe .rpm provided by Oracle does not come with > /etc/ld.so.conf.d/oracle* file which would include the library > directory via the ld.so.cache mechanism, I think using LD_RUN_PATH > while making DBD::Oracle with Oracle XE (but the same holds for > other situations) would be nice. I agree. > Alternatively, would setting > > $ENV{'LD_LIBRARY_PATH'} ||= "$ORACLE_HOME/lib" > > in Oracle.pm in the runtime be a way to go? I believe it's too late by then (but do try it). > This and the .rpm Instant Client email I sent a while ago got me > thinking -- now that Oracle provides Oracle database server and > Oracle client libraries as well-defined packages (for Linux in the > form of .rpms), would it make sense to detect these cases early in > Makefile.PL and run Makefile.XE.PL / Makefile.IC.PL instead, simple > Makefile.PLs tailored for these situations? The DBD::Oracle has a lot > of code that deals with various versions back to Oracle 7 and with > various OSes and installations. Having simple Makefile.PLs for those > "simple" well-known cases of 10g Oracle might make compilation and > installation of DBD::Oracle as easy to install as Oracle itself got > lately. There is much that could and should be done. But my time is very limited. I'd *love* more people to get involved in maintaining DBD::Oracle. I barely even use it these days so it just doesn't make sense for me to be the only maintainer. Can you help Honza? Tim.