Я пытался установить DBD :: Oracle в Linux 7.4 (x86_64 x86_64 x86_64 GNU / Linux) в течение последних 2 дней. Это стало препятствием для одного из важнейших проектов. Я перепробовал все возможные способы, которые только мог придумать, но безуспешно.
Пока что я сделал следующее:
1) Успешно установлен DBI.
2) разархивировано instantclient-sdk-linux.x64-12.2.0.1.0.zip, instantclient-basic-linux.x64-12.2.0.1.0.zip, instantclient-sqlplus-linux.x64-12.2 .0.1.0.zip в каталоге / home / netauto / oracle / и установите LD_LIBRARY_PATH и ORACLE_HOME, чтобы они указывали на / home / netauto / oracle / instantclient_12_2
instantclient_12_2]# ls -ltr /home/netauto/oracle/instantclient_12_2
-rwxrwxr-x. 1 netauto netauto 124771800 Jan 26 2017 libociei.so
-rwxrwxr-x. 1 netauto netauto 57272 Jan 26 2017 genezi
-rwxrwxr-x. 1 netauto netauto 240476 Jan 26 2017 uidrvci
-rwxrwxr-x. 1 netauto netauto 116563 Jan 26 2017 liboramysql12.so
-r-xr-xr-x. 1 netauto netauto 380996 Jan 26 2017 libons.so
-r-xr-xr-x. 1 netauto netauto 6568149 Jan 26 2017 libnnz12.so
-rw-rw-r--. 1 netauto netauto 363 Jan 26 2017 BASIC_README
-rwxrwxr-x. 1 netauto netauto 44220 Jan 26 2017 adrci
-rw-rw-r--. 1 netauto netauto 74230 Jan 26 2017 xstreams.jar
-r--r--r--. 1 netauto netauto 4036257 Jan 26 2017 ojdbc8.jar
-r-xr-xr-x. 1 netauto netauto 158543 Jan 26 2017 libocijdbc12.so
-rwxrwxr-x. 1 netauto netauto 2218687 Jan 26 2017 libocci.so.12.1
-r-xr-xr-x. 1 netauto netauto 539065 Jan 26 2017 libmql1.so
-r-xr-xr-x. 1 netauto netauto 2981501 Jan 26 2017 libipc1.so
-rwxrwxr-x. 1 netauto netauto 71638263 Jan 26 2017 libclntsh.so.12.1
-rwxrwxr-x. 1 netauto netauto 8033199 Jan 26 2017 libclntshcore.so.12.1
-rw-rw-r--. 1 netauto netauto 367 Jan 26 2017 SQLPLUS_README
-r-xr-xr-x. 1 netauto netauto 22751 Jan 26 2017 sqlplus
-r-xr-xr-x. 1 netauto netauto 1559466 Jan 26 2017 libsqlplus.so
-r-xr-xr-x. 1 netauto netauto 1641005 Jan 26 2017 libsqlplusic.so
-r-xr-xr-x. 1 netauto netauto 342 Jan 26 2017 glogin.sql drwxrwxr-x. 5 netauto netauto 4096 Jan 26 2017 sdk
lrwxrwxrwx. 1 netauto netauto 64 Sep 4 13:07 libclntsh.so -> /home/netauto/oracle/instantclient_12_2/libclntsh.so.12.1
Заголовочные файлы:
instantclient_12_2]# ls /home/netauto/oracle/instantclient_12_2/sdk/include
-r-xr-xr-x. 1 netauto netauto 24778 Jan 26 2017 occiObjects.h
-r-xr-xr-x. 1 netauto netauto 2115 Jan 26 2017 occi.h
-r-xr-xr-x. 1 netauto netauto 39934 Jan 26 2017 occiData.h
-r-xr-xr-x. 1 netauto netauto 72561 Jan 26 2017 occiControl.h
-r-xr-xr-x. 1 netauto netauto 35604 Jan 26 2017 occiCommon.h
-r-xr-xr-x. 1 netauto netauto 194752 Jan 26 2017 oci.h
-r-xr-xr-x. 1 netauto netauto 8953 Jan 26 2017 ociextp.h
-r-xr-xr-x. 1 netauto netauto 11782 Jan 26 2017 ocidfn.h
-r-xr-xr-x. 1 netauto netauto 4048 Jan 26 2017 ocidem.h
-r-xr-xr-x. 1 netauto netauto 43001 Jan 26 2017 ocidef.h
-r-xr-xr-x. 1 netauto netauto 6204 Jan 26 2017 ociapr.h
-r-xr-xr-x. 1 netauto netauto 438428 Jan 26 2017 ociap.h
-r-xr-xr-x. 1 netauto netauto 10361 Jan 26 2017 oci8dp.h
-r-xr-xr-x. 1 netauto netauto 7203 Jan 26 2017 oci1.h
-r-xr-xr-x. 1 netauto netauto 11649 Jan 26 2017 occiAQ.h
-r-xr-xr-x. 1 netauto netauto 9892 Jan 26 2017 xa.h
-r-xr-xr-x. 1 netauto netauto 123766 Jan 26 2017 ort.h
-r-xr-xr-x. 1 netauto netauto 42866 Jan 26 2017 oro.h
-r-xr-xr-x. 1 netauto netauto 158261 Jan 26 2017 orl.h
-r-xr-xr-x. 1 netauto netauto 102775 Jan 26 2017 ori.h
-r-xr-xr-x. 1 netauto netauto 15083 Jan 26 2017 orid.h
-r-xr-xr-x. 1 netauto netauto 6540 Jan 26 2017 oratypes.h
-r-xr-xr-x. 1 netauto netauto 32313 Jan 26 2017 odci.h
-r-xr-xr-x. 1 netauto netauto 111273 Jan 26 2017 ocixstream.h
-r-xr-xr-x. 1 netauto netauto 8138 Jan 26 2017 ocixmldb.h
-r-xr-xr-x. 1 netauto netauto 6494 Jan 26 2017 ocikpr.h
-r-xr-xr-x. 1 netauto netauto 78862 Jan 26 2017 nzt.h
-r-xr-xr-x. 1 netauto netauto 37493 Jan 26 2017 nzerror.h
-r-xr-xr-x. 1 netauto netauto 44851 Jan 26 2017 ldap.h
perl MakeFile.PL прошел нормально
DBD-Oracle-1.23]# perl Makefile.PL
Using DBI 1.641 (for perl 5.016003 on x86_64-linux) installed in /home/netauto/perl_modules/lib/auto/DBI/
Configuring DBD::Oracle for perl 5.016003 on linux (x86_64-linux)
Remember to actually *READ* the README file! Especially if you have any problems.
Installing on a linux, Ver#3.10
Using Oracle in /home/netauto/oracle/instantclient_12_2
DEFINE _SQLPLUS_RELEASE = "1202000100" (CHAR)
Oracle version 12.2.0.1 (12.2)
Looks like an Instant Client installation, okay
Your LD_LIBRARY_PATH env var is set to '/home/netauto/oracle/instantclient_12_2/'
Oracle sysliblist:
Found header files in /home/netauto/oracle/instantclient_12_2/sdk/include.
Checking for functioning wait.ph
System: perl5.016003 linux ord12-p-noobprimt-firmsmt-01 3.10.0-693.11.6.el7.x86_64 #1 smp wed jan 3 18:59:47 pst 2018 x86_64 x86_64 x86_64 gnulinux
Compiler: cc -O2 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Linker: /bin/ld
Sysliblist:
Linking with -lclntsh.
WARNING: If you have problems you may need to rebuild perl with threading enabled.
LD_RUN_PATH=/home/netauto/oracle/instantclient_12_2
Using DBD::Oracle 1.23.
Using DBD::Oracle 1.23.
Using DBI 1.641 (for perl 5.016003 on x86_64-linux) installed in /home/netauto/perl_modules/lib/auto/DBI/
Generating a Unix-style Makefile
Writing Makefile for DBD::Oracle
Writing MYMETA.yml and MYMETA.json
*** 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?)
Но, выдать ошибку команды
DBD-Oracle-1.23]# make
Skip blib/lib/DBD/Oracle.pm (unchanged)
Skip blib/lib/oraperl.ph (unchanged)
Skip blib/arch/auto/DBD/Oracle/dbdimp.h (unchanged)
Skip blib/arch/auto/DBD/Oracle/ocitrace.h (unchanged)
Skip blib/lib/Oraperl.pm (unchanged)
Skip blib/arch/auto/DBD/Oracle/Oracle.h (unchanged)
Skip blib/lib/DBD/Oracle/Object.pm (unchanged)
Skip blib/lib/DBD/Oracle/GetInfo.pm (unchanged)
cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
Running Mkbootstrap for Oracle ()
chmod 644 "Oracle.bs"
"/home/netauto/program_files/perl/perl-5.16.3/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Oracle.bs blib/arch/auto/DBD/Oracle/Oracle.bs 644
cc -c -I/home/netauto/oracle/instantclient_12_2/sdk/include -I/home/netauto/perl_modules/lib/auto/DBI -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" -fPIC "-I/home/netauto/program_files/perl/perl-5.16.3/lib/5.16.3/x86_64-linux/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"12.2.0.1\" Oracle.c
Oracle.xs: In function ‘XS_DBD__Oracle__st_ora_bind_param_inout_array’:
Oracle.xs:175:6: error: ‘sv_yes’ undeclared (first use in this function)
? &sv_yes : &sv_no;
^
Oracle.xs:175:6: note: each undeclared identifier is reported only once for each function it appears in
Oracle.xs:175:16: error: ‘sv_no’ undeclared (first use in this function)
? &sv_yes : &sv_no;
^
Oracle.c: In function ‘XS_DBD__Oracle__st_ora_execute_array’:
Oracle.c:1679:14: error: ‘sv_undef’ undeclared (first use in this function)
cols = &sv_undef;
^
Oracle.xs: In function ‘XS_DBD__Oracle__st_cancel’:
Oracle.xs:253:41: error: ‘sv_yes’ undeclared (first use in this function)
ST(0) = dbd_st_cancel(sth, imp_sth) ? &sv_yes : &sv_no;
^
Oracle.xs:253:51: error: ‘sv_no’ undeclared (first use in this function)
ST(0) = dbd_st_cancel(sth, imp_sth) ? &sv_yes : &sv_no;
^
Oracle.xs: In function ‘XS_DBD__Oracle__db_reauthenticate’:
Oracle.xs:289:59: error: ‘sv_yes’ undeclared (first use in this function)
ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &sv_yes : &sv_no;
^
Oracle.xs:289:69: error: ‘sv_no’ undeclared (first use in this function)
ST(0) = ora_db_reauthenticate(dbh, imp_dbh, uid, pwd) ? &sv_yes : &sv_no;
^
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_write’:
Oracle.xs:317:11: error: ‘sv_undef’ undeclared (first use in this function)
ST(0) = &sv_undef;
^
Oracle.xs:342:11: error: ‘sv_yes’ undeclared (first use in this function)
ST(0) = &sv_yes;
^
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_append’:
Oracle.xs:373:11: error: ‘sv_undef’ undeclared (first use in this function)
ST(0) = &sv_undef;
^
Oracle.xs:396:14: error: ‘sv_yes’ undeclared (first use in this function)
ST(0) = &sv_yes;
^
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_read’:
Oracle.xs:430:13: error: ‘sv_undef’ undeclared (first use in this function)
dest_sv = &sv_undef;
^
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_trim’:
Oracle.xs:464:11: error: ‘sv_undef’ undeclared (first use in this function)
ST(0) = &sv_undef;
^
Oracle.xs:467:11: error: ‘sv_yes’ undeclared (first use in this function)
ST(0) = &sv_yes;
^
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_length’:
Oracle.xs:482:11: error: ‘sv_undef’ undeclared (first use in this function)
ST(0) = &sv_undef;
^
Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_lob_chunk_size’:
Oracle.xs:501:12: error: ‘sv_undef’ undeclared (first use in this function)
ST(0) = &sv_undef;
^
make: *** [Oracle.o] Error 1
Мне кажется, что он не может найти какой-либо заголовочный файл, но какой файл и какой путь мне нужно добавить в LD_LIBRARY_PATH (если необходимо), я не знаю. Я действительно не могу разобраться с этим.
Пожалуйста, дайте мне знать, что я здесь делаю неправильно.
Спасибо,
Prabir