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.

Reply via email to