perlquestion
moof1138
Hello,
I am new to Linux (used to Mac OS X). I am trying to compile DBD::Oracle on Oracle Linux Server release 5.8. I have the 11.2.0.3 Oracle client libs installed on the system, and am stuck in the older Perl 5.8.8. I am not an admin on the system, so these are things I have little control over.
I also can't use CPAN, but am installing all modules manually with a custom path I can write to. I set $ORACLE_HOME, $LD_LIBRARY_PATH appropriately
So here's what I am trying:
<code>
$ perl Makefile.PL PREFIX=/home/acenter/usr/perl/
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/orasys/11.2.0.3_client
DEFINE _SQLPLUS_RELEASE = "1102000300" (CHAR)
Oracle version 11.2.0.3 (11.2)
Found /usr/orasys/11.2.0.3_client/rdbms/lib/ins_rdbms.mk
Using /usr/orasys/11.2.0.3_client/rdbms/lib/ins_rdbms.mk
Your LD_LIBRARY_PATH env var is set to '/usr/orasys/11.2.0.3_client/lib/'
Reading /usr/orasys/11.2.0.3_client/rdbms/lib/ins_rdbms.mk
Reading /usr/orasys/11.2.0.3_client/rdbms/lib/env_rdbms.mk
WARNING: Oracle /usr/orasys/11.2.0.3_client/rdbms/lib/ins_rdbms.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/orasys/11.2.0.3_client/rdbms/public.
client_version=11.2
DEFINE= -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"11.2.0.3\" -DORA_OCI_102 -DORA_OCI_112
Checking for functioning wait.ph
System: perl5.008008 linux ca-build10.us.oracle.com 2.6.20-1.3002.fc6xen #1 smp thu apr 30 18:08:39 pdt 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: -ldl -lm -lpthread -lnsl -lirc -lipgo -lsvml
Oracle makefiles would have used these definitions but we override them:
CC: $(COMPDIR)/bin/gcc
CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
[$(GFLAG) -O3 $(CDEBUG) -m32 -trigraphs -fPIC -I/usr/orasys/11.2.0.3_client/rdbms/demo -I/usr/orasys/11.2.0.3_client/rdbms/public -I/usr/orasys/11.2.0.3_client/plsql/public -I/usr/orasys/11.2.0.3_client/network/public -DLINUX -D_GNU_SOURCE -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -DSLTS_ENABLE -DSLMXMX_ENABLE -D_REENTRANT -DNS_THREADS -D__NO_CTYPE=1 -DLDAP_CM $(LPFLAGS) $(PLSQLNCGFLAGS) $(USRFLAGS)]
LDFLAGS: $(LDFLAGS32)
[-m32 -o $@ -L/usr/orasys/11.2.0.3_client/rdbms//lib32/ -L/usr/orasys/11.2.0.3_client/lib32/ -L/usr/orasys/11.2.0.3_client/lib32/stubs/]
Linking with -lclntsh -ldl -lm -lpthread -lnsl -lirc -lipgo -lsvml -ldl -lm -lpthread [from $(OCISHAREDLIBS)]
WARNING: META_MERGE is not a known parameter.
Checking if your kit is complete...
Warning: the following files are missing in your kit:
Changes
dbdimp.c
examples/bind.pl
examples/commit.pl
examples/curref.pl
examples/ex.pl
examples/inserting_longs.pl
examples/japh
examples/mktable.pl
examples/ora_explain.pl
examples/oradump.pl
examples/proc.pl
examples/read_long_via_blob_read.pl
examples/README
examples/sql
examples/tabinfo.pl
hints/macos_lib.syms
META.json
mkta.pl
oci8.c
README.mkdn
Please inform the author.
'META_MERGE' is not a known MakeMaker parameter name.
LD_RUN_PATH=/usr/orasys/11.2.0.3_client/lib
Using DBD::Oracle 1.64.
Using DBD::Oracle 1.64.
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?)
$ make
cp lib/DBD/Oracle/Troubleshooting/Cygwin.pod blib/lib/DBD/Oracle/Troubleshooting/Cygwin.pod
cp lib/DBD/Oracle.pm blib/lib/DBD/Oracle.pm
cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h
cp lib/DBD/Oracle/Troubleshooting/Hpux.pod blib/lib/DBD/Oracle/Troubleshooting/Hpux.pod
cp lib/DBD/Oracle/Troubleshooting/Vms.pod blib/lib/DBD/Oracle/Troubleshooting/Vms.pod
cp lib/DBD/Oracle/Troubleshooting/Linux.pod blib/lib/DBD/Oracle/Troubleshooting/Linux.pod
cp lib/DBD/Oracle/GetInfo.pm blib/lib/DBD/Oracle/GetInfo.pm
cp lib/DBD/Oracle/Troubleshooting.pod blib/lib/DBD/Oracle/Troubleshooting.pod
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h
cp lib/DBD/Oracle/Troubleshooting/Sun.pod blib/lib/DBD/Oracle/Troubleshooting/Sun.pod
cp lib/DBD/Oracle/Troubleshooting/Macos.pod blib/lib/DBD/Oracle/Troubleshooting/Macos.pod
cp lib/DBD/Oracle/Troubleshooting/Aix.pod blib/lib/DBD/Oracle/Troubleshooting/Aix.pod
cp lib/DBD/Oracle/Object.pm blib/lib/DBD/Oracle/Object.pm
cp lib/DBD/Oracle/Troubleshooting/Win64.pod blib/lib/DBD/Oracle/Troubleshooting/Win64.pod
cp lib/DBD/Oracle/Troubleshooting/Win32.pod blib/lib/DBD/Oracle/Troubleshooting/Win32.pod
cp mk.pm blib/arch/auto/DBD/Oracle/mk.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/orasys/11.2.0.3_client/rdbms/public -I/usr/orasys/11.2.0.3_client/rdbms/demo -I/usr/orasys/11.2.0.3_client/rdbms/public -I/usr/orasys/11.2.0.3_client/plsql/public -I/usr/orasys/11.2.0.3_client/network/public -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.64\" -DXS_VERSION=\"1.64\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"11.2.0.3\" -DORA_OCI_102 -DORA_OCI_112 Oracle.c
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 -o blib/arch/auto/DBD/Oracle/Oracle.so \
-L/usr/orasys/11.2.0.3_client/lib/ -lclntsh -ldl -lm -lpthread -lnsl -lirc -lipgo -lsvml -ldl -lm -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
Manifying blib/man3/DBD::Oracle::Troubleshooting.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Cygwin.3pm
Manifying blib/man3/DBD::Oracle.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Sun.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Hpux.3pm
lib/DBD/Oracle/Troubleshooting/Hpux.pod:971: Unknown command paragraph "=itme 3 Add the following line: "
lib/DBD/Oracle/Troubleshooting/Hpux.pod:995: Unmatched =back
Manifying blib/man3/DBD::Oracle::Troubleshooting::Vms.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Macos.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Aix.3pm
Manifying blib/man3/DBD::Oracle::Object.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Linux.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Win64.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Win32.3pm
Manifying blib/man3/DBD::Oracle::GetInfo.3pm
$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/000-report-versions-tiny....Test::More version 0.88 required--this is only version 0.62 at t/000-report-versions-tiny.t line 3.
BEGIN failed--compilation aborted at t/000-report-versions-tiny.t line 3.
# Looks like your test died before it could output anything.
t/000-report-versions-tiny....dubious
Test returned status 255 (wstat 65280, 0xff00)
t/00versions..................Can't load '/tmp/perl_tmp/DBD-Oracle-1.64/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: /tmp/perl_tmp/DBD-Oracle-1.64/blib/arch/auto/DBD/Oracle/Oracle.so: undefined symbol: charsetid at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
at t/00versions.t line 10
Compilation failed in require at t/00versions.t line 10.
BEGIN failed--compilation aborted at t/00versions.t line 10.
# Looks like your test died before it could output anything.
t/00versions..................dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-2
Failed 2/2 tests, 0.00% okay
t/01base......................NOK 4
# Failed test 'install_driver'
# in t/01base.t at line 24.
# got: 'install_driver(Oracle) failed: Can't load '/tmp/perl_tmp/DBD-Oracle-1.64/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: /tmp/perl_tmp/DBD-Oracle-1.64/blib/arch/auto/DBD/Oracle/Oracle.so: undefined symbol: charsetid at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230.
</code>
...
all the tests fail with the "undefined symbol: charsetid" error.
I've googled this error tracing along things for a long, long time but haven't seen anything relevant and I am stuck. Does anyone have ideas for what might cause this, what might be done to troubleshoot, or what might be a good avenue to work on this? All advice appreciated.