I am having a problem getting DBD-Oracle to work. It is failing on the make
test on the initial test. If you could please give me any ideas you might have
on resolving this I would be so grateful. I have been trying to resolve this
for several days!!
Thanks in advance
[r...@cvlnxsybdq01 DBD-Oracle-1.24]# perl Makefile.PL
Using DBI 1.52 (for perl 5.008008 on x86_64-linux-thread-multi) installed in
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
Configuring DBD::Oracle for perl 5.008008 on linux (x86_64-linux-thread-multi)
Remember to actually *READ* the README file! Especially if you have any
problems.
Installing on a linux, Ver#2.6
Using Oracle in /usr/lib/oracle/10.2.0.4/client64
DEFINE _SQLPLUS_RELEASE = "1002000400" (CHAR)
Oracle version 10.2.0.4 (10.2)
Found /usr/share/oracle/10.2.0.4/client64/demo.mk
Using /usr/share/oracle/10.2.0.4/client64/demo.mk
Your LD_LIBRARY_PATH env var is set to
'/usr/lib/oracle/10.2.0.4/client64/lib:/opt/sybase/DataAccess/ODBC/lib:/opt/sybase/OCS-15_0/lib3p:/opt/sybase/OCS-15_0/lib:/opt/sybase/ASE-15_0/lib:'
Reading /usr/share/oracle/10.2.0.4/client64/demo.mk
WARNING: Oracle /usr/share/oracle/10.2.0.4/client64/demo.mk doesn't define a
'build' rule.
WARNING: I will now try to guess how to build and link DBD::Oracle for you.
This kind of guess work is very error prone and Oracle-version
sensitive.
It is possible that it won't be supported in future versions of
DBD::Oracle.
*PLEASE* notify dbi-users about exactly _why_ you had to build it this
way.
Found header files in /usr/include/oracle/10.2.0.4/client.
Checking for functioning wait.ph
System: perl5.008008 linux ls20-bc2-13.build.redhat.com 2.6.18-128.1.10.el5 #1
smp wed apr 29 13:53:08 edt 2009 x86_64 x86_64 x86_64 gnulinux
Compiler: gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_REENTRANT
-D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm
Linker: /usr/bin/ld
Sysliblist:
Oracle makefiles would have used these definitions but we override them:
CC: /usr/bin/g++32
LDFLAGS: -g
[-g]
Linking with -L../../ -locci -lclntsh -lpthread [from $(CCLIB)]
Checking if your kit is complete...
Looks good
Warning: -L../../ changed to -L/junk/DBD-Oracle-1.24/../../
LD_RUN_PATH=/usr/lib/oracle/10.2.0.4/client64/lib
Using DBD::Oracle 1.24.
Using DBD::Oracle 1.24.
Using DBI 1.52 (for perl 5.008008 on x86_64-linux-thread-multi) installed in
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::Oracle
*** If you have problems...
read all the log printed above, and the README and README.help.txt files.
(Of course, you have read README by now anyway, haven't you?)
[r...@cvlnxsybdq01 DBD-Oracle-1.24]# make
cp Oracle.pm blib/lib/DBD/Oracle.pm
cp oraperl.ph blib/lib/oraperl.ph
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h
cp Oraperl.pm blib/lib/Oraperl.pm
cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h
cp lib/DBD/Oracle/Object.pm blib/lib/DBD/Oracle/Object.pm
cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
cp lib/DBD/Oracle/GetInfo.pm blib/lib/DBD/Oracle/GetInfo.pm
/usr/bin/perl -p -e "s/~DRIVER~/Oracle/g"
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/Driver.xst >
Oracle.xsi
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -typemap
/usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap Oracle.xs > Oracle.xsc
&& mv Oracle.xsc Oracle.c
gcc -c -I/usr/include/oracle/10.2.0.4/client -I/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI
-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"1.24\"
-DXS_VERSION=\"1.24\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall
-Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.4\" Oracle.c
gcc -c -I/usr/include/oracle/10.2.0.4/client -I/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI
-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"1.24\"
-DXS_VERSION=\"1.24\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall
-Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.4\" dbdimp.c
dbdimp.c: In function âfb_ary_cb_allocâ:
dbdimp.c:298: warning: comparison is always false due to limited range of data
type
dbdimp.c:299: warning: comparison is always false due to limited range of data
type
dbdimp.c:300: warning: comparison is always false due to limited range of data
type
dbdimp.c:301: warning: comparison is always false due to limited range of data
type
dbdimp.c:302: warning: comparison is always false due to limited range of data
type
dbdimp.c: In function âfb_ary_allocâ:
dbdimp.c:318: warning: comparison is always false due to limited range of data
type
dbdimp.c:319: warning: comparison is always false due to limited range of data
type
dbdimp.c:320: warning: comparison is always false due to limited range of data
type
dbdimp.c:321: warning: comparison is always false due to limited range of data
type
gcc -c -I/usr/include/oracle/10.2.0.4/client -I/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI
-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"1.24\"
-DXS_VERSION=\"1.24\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall
-Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.4\" oci8.c
oci8.c: In function âora_blob_read_mb_pieceâ:
oci8.c:1597: warning: comparison is always false due to limited range of data
type
oci8.c: In function âdescribe_obj_by_tdoâ:
oci8.c:2957: warning: comparison is always false due to limited range of data
type
oci8.c: In function âora_describeâ:
oci8.c:3158: warning: comparison is always false due to limited range of data
type
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic Oracle.o
dbdimp.o oci8.o -o blib/arch/auto/DBD/Oracle/Oracle.so \
-L/usr/lib/oracle/10.2.0.4/client64/lib
-L/junk/DBD-Oracle-1.24/../.. -locci -lclntsh -lpthread \
chmod 755 blib/arch/auto/DBD/Oracle/Oracle.so
cp Oracle.bs blib/arch/auto/DBD/Oracle/Oracle.bs
chmod 644 blib/arch/auto/DBD/Oracle/Oracle.bs
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" ora_explain.PL ora_explain
Extracted ora_explain from ora_explain.PL with variable substitutions.
cp ora_explain blib/script/ora_explain
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/ora_explain
Manifying blib/man1/ora_explain.1
Manifying blib/man3/DBD::Oracle.3pm
Manifying blib/man3/DBD::Oraperl.3pm
Can access remote database with $ORACLE_USERID AND $TWO_TASK set
[r...@cvlnxsybdq01 DBD-Oracle-1.24]# sqlplus64 $ORACLE_USERID
I run make test and get the following error messages
[r...@cvlnxsybdq01 DBD-Oracle-1.24]# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0,
'blib/lib', 'blib/arch')" t/*.t
t/01base................# Test loading DBI, DBD::Oracle and version
t/01base................NOK 4
# Failed test 'install_driver'
# in t/01base.t at line 22.
Failed to load Oracle extension and/or shared libraries:
install_driver(Oracle) failed: Can't load
'/junk/DBD-Oracle-1.24/blib/arch/auto/DBD/Oracle/Oracle.so' for module
DBD::Oracle: /usr/lib/oracle/10.2.0.4/client64/lib/libocci.so.10.1: cannot
restore segment prot after reloc: Permission denied at
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at (eval 7) line 3
Compilation failed in require at (eval 7) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/01base.t line 19
The remaining tests will probably also fail with the same error.
*** Please read the README and README.help.txt files for help. ***
# Looks like you failed 1 test of 6.
t/01base................dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 4
Failed 1/6 tests, 83.33% okay (less 2 skipped tests: 3 okay, 50.00%)
t/10general.............make: *** [test_dynamic] Interrupt
[r...@cvlnxsybdq01 DBD-Oracle-1.24]# perl -Mblib t/01base.t
1..6
# Test loading DBI, DBD::Oracle and version
ok 1 - require DBI;
ok 2 - import DBI
ok 3 - internal
not ok 4 - install_driver
# Failed test 'install_driver'
# in t/01base.t at line 22.
Failed to load Oracle extension and/or shared libraries:
install_driver(Oracle) failed: Can't load
'/junk/DBD-Oracle-1.24/blib/arch/auto/DBD/Oracle/Oracle.so' for module
DBD::Oracle: /usr/lib/oracle/10.2.0.4/client64/lib/libocci.so.10.1: cannot
restore segment prot after reloc: Permission denied at
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at (eval 9) line 3
Compilation failed in require at (eval 9) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/01base.t line 19
The remaining tests will probably also fail with the same error.
*** Please read the README and README.help.txt files for help. ***
ok 5 # skip install_driver failed - skipping remaining
ok 6 # skip install_driver failed - skipping remaining
# Looks like you failed 1 test of 6.
Oracle Instantclient 32 and 64 bit basic, sqlplus, devel 10.2.0.4-1