Help Please..
I'm trying to build a linux box with DBD::Oracle. The Oracle 9i client works fine. I
have installed DBI with not problem now for DBD.I'm getting the feeling that DBD does
not work with Oracle 9i.
[root@niss-cgi DBD-Oracle-1.12]# perl Makefile.PL
Using DBI 1.32 installed in /usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBI
Configuring DBD::Oracle ...
>>> Remember to actually *READ* the README file!
Especially if you have any problems.
Using Oracle in /app/oracle/product/9.2.0
Found header files in rdbms/demo.
Found /app/oracle/product/9.2.0/precomp/demo/proc/demo_proc.mk
Using /app/oracle/product/9.2.0/precomp/demo/proc/demo_proc.mk
Reading /app/oracle/product/9.2.0/precomp/demo/proc/demo_proc.mk.
Reading /app/oracle/product/9.2.0/precomp/lib/env_precomp.mk.
Appending '-ldl' to TTLIBS
Attempting to discover Oracle OCI build rules...
gcc -c -o DBD_ORA_OBJ.o DBD_ORA_OBJ.c
Oracle oci build command:
echo -o DBD_ORA_EXE DBD_ORA_OBJ.o -L/app/oracle/product/9.2.0/lib/ -lclntsh
`cat /app/oracle/product/9.2.0/lib/ldflags` `cat
/app/oracle/product/9.2.0/lib/sysliblist` -ldl -lm
-o DBD_ORA_EXE DBD_ORA_OBJ.o -L/app/oracle/product/9.2.0/lib/ -lclntsh -lnbeq9
-lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9
-lntcp9 -lntns9 -ldl -lm -lpthread -lnsl -ldl -lm
Unable to interpret Oracle oci build commands. Using fallback approach.
System: perl5.006001 linux daffy.perf.redhat.com 2.4.17-0.13smp #1 smp fri feb 1
10:30:48 est 2002 i686 unknown
Compiler: gcc -O2 -march=i386 -mcpu=i686 -fno-strict-aliasing -I/usr/local/include
Linker: /usr/bin/ld
Sysliblist: -ldl -lm -lpthread -lnsl
Oracle makefiles would have used these definitions but we override them:
CC: cc
CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
[$(GFLAG) -O3 $(CDEBUG) -trigraphs -fPIC -DPRECOMP -I.
-I/app/oracle/product/9.2.0/precomp/public -I/app/oracle/product/9.2.0/rdbms/public
-I/app/oracle/product/9.2.0/rdbms/demo -I/app/oracle/product/9.2.0/plsql/public
-I/app/oracle/product/9.2.0/network/public -DLINUX -D_GNU_SOURCE
-D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -DSLTS_ENABLE -DSLMXMX_ENABLE
-D_REENTRANT -DNS_THREADS $(LPFLAGS) $(USRFLAGS)]
build: $(CC) -o $(EXE) $(OBJS) $(LDPATHFLAG)$(LIBHOME) $(PROLDLIBS)
Evaluating `cat $(LIBHOME)ldflags`
expanded `cat /app/oracle/product/9.2.0/lib/ldflags`
returned '-lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnoname9 -lntcp9
-lntcps9 -lnsslb9 -lntcp9 -lntns9 '
Evaluating `cat $(LIBHOME)sysliblist`
expanded `cat /app/oracle/product/9.2.0/lib/sysliblist`
returned '-ldl -lm -lpthread -lnsl'
[ cc -o $(EXE) $(OBJS) -L$(LIBHOME) -lclntsh -lnbeq9 -lnhost9 -lnus9
-lnldap9 -lldapclnt9 -lnsslb9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9
$(EXPDLIBS) $(EXOSLIBS) -ldl -lm -lpthread -lnsl -ldl -lm $(USRLIBS) ]
LDFLAGS: -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME)
$(LDPATHFLAG)$(LIBHOME)stubs/
[-o $@ -L/app/oracle/product/9.2.0/precomp/lib/ -L$(LIBHOME)
-L$(LIBHOME)stubs/]
Linking with -L/app/oracle/product/9.2.0/lib -lclntsh [from $(LIBCLNTSH)]
Checking if your kit is complete...
Looks good
LD_RUN_PATH=/app/oracle/product/9.2.0/lib
Using DBD::Oracle 1.12.
Using DBI 1.32 installed in /usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBI
Writing Makefile for DBD::Oracle
*** If you have problems...
read all the log printed above, and the README and README.help files.
(Of course, you have read README by now anyway, haven't you?)
Now for make
[root@niss-cgi DBD-Oracle-1.12]# make
cp oraperl.ph blib/lib/oraperl.ph
cp Oracle.pm blib/lib/DBD/Oracle.pm
cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h
cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h
cp Oraperl.pm blib/lib/Oraperl.pm
/usr/bin/perl -p -e "s/~DRIVER~/Oracle/g" <
/usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBI/Driver.xst > Oracle.xsi
/usr/bin/perl -I/usr/lib/perl5/5.6.1/i386-linux -I/usr/lib/perl5/5.6.1
/usr/lib/perl5/5.6.1/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.6.1/ExtUtils/typemap
Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c
gcc -c -I. -I/app/oracle/product/9.2.0/precomp/public
-I/app/oracle/product/9.2.0/rdbms/public -I/app/oracle/product/9.2.0/rdbms/demo
-I/app/oracle/product/9.2.0/plsql/public -I/app/oracle/product/9.2.0/network/public
-I/app/oracle/product/9.2.0/rdbms/demo -I/app/oracle/product/9.2.0/rdbms/demo
-I/usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBI -fno-strict-aliasing
-I/usr/local/include -O2 -march=i386 -mcpu=i686 -DVERSION=\"1.12\"
-DXS_VERSION=\"1.12\" -fPIC -I/usr/lib/perl5/5.6.1/i386-linux/CORE Oracle.c
In file included from Oracle.h:20,
from Oracle.xs:1:
dbdimp.h:44:20: ocidfn.h: No such file or directory
dbdimp.h:57:21: ociapr.h: No such file or directory
make: *** [Oracle.o] Error 1
This is where I get lost. dbdimp.h makes no referenece to ORA9. Of course "make test"
does not work either
[root@niss-cgi DBD-Oracle-1.12]# make test
gcc -c -I. -I/app/oracle/product/9.2.0/precomp/public
-I/app/oracle/product/9.2.0/rdbms/public -I/app/oracle/product/9.2.0/rdbms/demo
-I/app/oracle/product/9.2.0/plsql/public -I/app/oracle/product/9.2.0/network/public
-I/app/oracle/product/9.2.0/rdbms/demo -I/app/oracle/product/9.2.0/rdbms/demo
-I/usr/lib/perl5/site_perl/5.6.1/i386-linux/auto/DBI -fno-strict-aliasing
-I/usr/local/include -O2 -march=i386 -mcpu=i686 -DVERSION=\"1.12\"
-DXS_VERSION=\"1.12\" -fPIC -I/usr/lib/perl5/5.6.1/i386-linux/CORE Oracle.c
In file included from Oracle.h:20,
from Oracle.xs:1:
dbdimp.h:44:20: ocidfn.h: No such file or directory
dbdimp.h:57:21: ociapr.h: No such file or directory
make: *** [Oracle.o] Error 1