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 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. 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. Alternatively, would setting $ENV{'LD_LIBRARY_PATH'} ||= "$ORACLE_HOME/lib" in Oracle.pm in the runtime be a way to go? 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. Yours, -- ------------------------------------------------------------------------ Honza Pazdziora | [EMAIL PROTECTED] | http://www.fi.muni.cz/~adelton/ .project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ... Only self-confident people can be simple.