|
Posted by Stephan Titard on August 4, 2006, 8:28 am
Please log in for more thread options
Achim Grolms escribió:
>> Achim Grolms escribió:
>>>> I would like to be able to use various DBD::Oracle drivers
>>>> one using the client library for oracle 8.1.7.x
>>>> and another using the client library for oracle 9.2.x
>>> Why?
>> the same perl tree is used to access different versions of oracle.
>
> Sure. But why?
>
> One idea is to install DBD::Oracle to different PREFIX locations
> and use PERL5LIB, ORACLE_HOME and LD_LIBRARY_PATH
> to configure the correct locations of Perllibs and
> Oracle-code.
Well I try always to minimize the use of env. vars, especially
SHLIB_PATH, LD_LIBRARY_PATH and the such.
On HP-UX (11.0 32bit) I build a distribution with about 350 modules where
all external shared objects are found (modulo one symlink) directly
inside the perl tree
so that it is ready for tar and independent. In the case of a (perl)
built shared library
with external dependency (like DBD/oracle.sl) I create a link to the
external library inside my perl-tree that I use for the install of the
perl module. finally an external OS-dependent command is used to turn
off the use of SHLIB_PATH and the such.
why? "principle of least surprise, probably and KISS too"
I use a couple ugly tricks like to relocate a fresh build
to another place: I build normally for /opt/perl58X (core + modules)
and I "generate" for /var/tmp/p*/perl58X (the core part is actually
installed normally using PREFIX). In all the *sl I reserved enough room
in the shared object header using ///////external/shared/object
which I subsistute directly in the binary.
Does not work yet for solaris, but is mainly ok on cygwin.
hth
--stephan
|