Hi all,
Thanks to the devel package, I've got succeeded in making DBD::Oracle
with the Oracle Instant Client 10.1.0.3, no *.mk files, in my linux box.
My recipe is:
1) install both basic- and devel-10.1.0.3 rpm packages
2) export ORALCE_HOME="/usr/lib/oracle/10.1.0.3/client"
3) export LD_LIBRARY_PATH="$ORACLE_HOME/lib:$LD_LIBRARY_PATH"
4) modify the Makefile.PL file to bypass the find_headers() routine and
to pass a correct -I flag to cc (the attached dirty patch is FYI)
5) execute the Makefile.PL * with the -l option *, perl Makefile.PL -l
6) make && make test && make install
# I got many errors in t/30long.t (retrieving blobs ?)
# but it seems to work fairly.
I hope this could help those who are annoyed with the "Unable to locate an
oracle.mk,..." error.
Happy DBing,
Satoshi
--- Makefile.PL.orig 2004-10-22 18:07:04.000000000 +0900
+++ Makefile.PL 2005-02-02 12:39:56.703125000 +0900
@@ -276,7 +276,7 @@
print "Oracle sysliblist: $syslibs\n";
my $libdir = ora_libdir();
$opts{dynamic_lib} = { OTHERLDFLAGS => "$::opt_g" };
- my @h_dirs = find_headers();
+# my @h_dirs = find_headers();
if ($client_version_full =~ /^8.0.6/ && $os eq 'hpux') {
$linkwith_msg = "-lextp -l$lib.";
$opts{LIBS} = [ "-L$OH/$libdir -lextp -l$lib $syslibs" ];
@@ -286,7 +286,8 @@
$linkwith_msg = "-l$lib.";
$opts{LIBS} = [ "-L$OH/$libdir -l$lib $syslibs" ];
}
- my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
+# my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
+ my $inc = "-I/usr/include/oracle/10.1.0.3/client";
$opts{INC} = "$inc -I$dbi_arch_dir";
}
else { # --- trawl the guts of Oracle's make files looking the how it wants to
link