Hi,

Figured I'd post this since I've spent the last 2 days perusing messageboards and 
scanning emails for fixes to my problems.

Anyways, I was tasked with getting DBD::Oracle installed and working with our current 
DBD::Mysql/DBI setup so we could make calls to our ticketing system.  We wanted to 
copy this to a couple different machines to be used within our reports and other crap.

The machines we are building for are sparc ( 64 int ) solaris 9 machines.  We already 
had DBI 1.30 installed and working on these with DBD::mysql.  We've got perl 5.6.1 
installed.  On the machine that I built the original on, I had installed the client 
from the Oracle 9.0.1 CD's that come with Solaris 9.0.

After some preliminary problems ( nothing I'll discuss, less I make people laugh at 
me. :) ), I finally got DBD::Oracle built and installed.  Unfortunately, whenever I 
ran the tests, they bombed.  I also wrote a short little perl script to simply try and 
connect.  The error I was receiving was -

fatal: relocation error: file blib/arch/auto/DBD/Oracle/Oracle.so: symbol 
OCIInitialize: referenced symbol not found

I searched and I found several people had the same problem, but I never could find a 
solution for it.  In any case, this was just an error between the keyboard and the 
chair.  I didn't have 'make' in my path. \:  The Makefile.PL issues a bunch of 'make' 
commands, but if you don't happen to have it in your path, it simply continues on and 
to the average joe blow ( me ), it looked fine ( ie - it didn't blow up ).  Once I put 
/usr/ccs/bin into my path, the way looked clear.

Unfortunately, when you install the Oracle client, it comes to a roundabout weight of 
600mb or so.  I did NOT want to have to copy that around, so I had to put on my 
detective hat and search for what pieces I needed from the oracle client in order for 
DBD::Oracle to function.  This resulted in the following list of files -

/cdn/oracle/oracore/zoneinfo/timezone.dat
/cdn/oracle/oracore/zoneinfo/timezlrg.dat
/cdn/oracle/lib/libclntsh.so.9.0
/cdn/oracle/lib/libwtc9.so

Anyways, to test, I made a package out of the following list -

/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/mk.pm
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/dbdimp.h
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/ocitrace.h
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/Oracle.h
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/Oracle.so
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/Oracle.bs
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/oraperl.ph
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/Oraperl.pm
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/DBD/Oracle.pm
/usr/local/man/man1/ora_explain.1
/usr/local/man/man3/DBD::Oracle.3pm
/usr/local/man/man3/DBD::Oraperl.3pm
/usr/local/bin/ora_explain
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/.packlist
/cdn/oracle/oracore/zoneinfo/timezone.dat
/cdn/oracle/oracore/zoneinfo/timezlrg.dat
/cdn/oracle/lib/libclntsh.so.9.0
/cdn/oracle/lib/libwtc9.so

I copied this over to another Solaris 9 box that hadn't been touched by Oracle and 
simply had DBI 1.30 installed.  Installed my package and ran a small test script and 
wham-bam-thank you ma'm, it worked.

In any case, my solution could probably be fine tuned even more to produce an even 
smaller package, but the result is already under 1mb, which makes me happy.  So if 
anyone else had these problems/questions, I hope this at least helps a little bit.

--
sh







Reply via email to