DBD:Oracle на linux (установка драйвера)

Модератор: Модераторы разделов

koluchy
Сообщения: 109
ОС: openSUSE (Novell)

DBD:Oracle на linux

Сообщение koluchy »

Привет, ребята.
Нужно написать скрипт на перл:
соединиться с БД Oracle(windows), сделать выборку, разъединиться.

Для соединения с БД Oracle нужно установить Perl-DBI и DBD-Oracle.
C Perl-DBI gпроблем не было. А вот perl-DBD вызывает проблемы.

Кто сталкивался с этим вопросм, помгите.
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
0ut
Сообщения: 307
Статус: Злыдень
ОС: *nix

Re: DBD:Oracle на linux

Сообщение 0ut »

через cpan установи
Запросы ошибок к операционной системе игнорироваться не могут.
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

0ut писал(а):
27.06.2008 13:01
через cpan установи


пробовал через CPAN:

Код:

cpan> i DBD::Oracle CPAN: Storable loaded ok CPAN: LWP::UserAgent loaded ok Fetching with LWP: ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz Proxy authentication needed! (Note: to permanently configure username and password run o conf proxy_user your_username o conf proxy_pass your_password ) Going to read /root/.cpan/sources/authors/01mailrc.txt.gz Fetching with LWP: ftp://ftp.perl.org/pub/CPAN/modules/02pac....details.txt.gz Going to read /root/.cpan/sources/modules/02packages.details.txt.gz Database was generated on Fri, 27 Jun 2008 06:02:52 GMT There's a new CPAN.pm version (v1.9205) available! [Current version is v1.7602] You might want to try install Bundle::CPAN reload cpan without quitting the current session. It should be a seamless upgrade while we are running... Fetching with LWP: ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz Going to read /root/.cpan/sources/modules/03modlist.data.gz Going to write /root/.cpan/Metadata Strange distribution name [DBD::Oracle] Module id = DBD::Oracle DESCRIPTION Oracle Driver for DBI CPAN_USERID DBIML (DBI Mailing Lists <dbi-users@perl.org>) CPAN_VERSION 1.21 CPAN_FILE P/PY/PYTHIAN/DBD-Oracle-1.21.tar.gz DSLI_STATUS MmcO (mature,mailing-list,C,object-oriented) INST_FILE (not installed)
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
0ut
Сообщения: 307
Статус: Злыдень
ОС: *nix

Re: DBD:Oracle на linux

Сообщение 0ut »

а если ручками компилить, то какие ошибки?
Запросы ошибок к операционной системе игнорироваться не могут.
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: DBD:Oracle на linux

Сообщение gcc »

запасной варинат: распаковать архив и прописать в коде путь к модулю, должно работать

Код: Выделить всё

require "/путь/к/mysql.pm";
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

0ut писал(а):
27.06.2008 14:21
а если ручками компилить, то какие ошибки?


вот ручками:

Код:

Using DBI 1.58 (for perl 5.008008 on i586-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/auto/DBI/ Configuring DBD::Oracle for perl 5.008008 on linux (i586-linux-thread-multi) Remember to actually *READ* the README file! Especially if you have any problems. Using Oracle in /usr/lib/oracle/10.2.0.3/client DEFINE _SQLPLUS_RELEASE = "1002000300" (CHAR) Oracle version 10.2.0.3 (10.2) Unable to locate an oracle.mk, proc.mk or other suitable *.mk file in your Oracle installation. (I looked in /usr/lib/oracle/10.2.0.3/client/rdbms/demo/demo_xe.mk /usr/lib/oracle/10.2.0.3/client/rdbms/lib/oracle.mk /usr/lib/oracle/10.2.0.3/client/rdbms/demo/oracle.mk /usr/lib/oracle/10.2.0.3/client/rdbms/demo/demo_rdbms.mk /usr/lib/oracle/10.2.0.3/client/precomp/demo/proc/proc.mk /usr/lib/oracle/10.2.0.3/client/precomp/demo/proc/demo_proc.mk /usr/lib/oracle/10.2.0.3/client/proc/lib/proc.mk /usr/lib/oracle/10.2.0.3/client/proc16/lib/proc16.mk under /usr/lib/oracle/10.2.0.3/client) The oracle.mk (or demo_rdbms.mk) file is part of the Oracle RDBMS product. The proc.mk (or demo_proc.mk) file is part of the Oracle Pro*C product. You need to build DBD::Oracle on a system which has one of these Oracle components installed. (Other *.mk files such as the env_*.mk files will not work.) Alternatively you can use Oracle Instant Client. In the unlikely event that a suitable *.mk file is installed somewhere non-standard you can specify where it is using the -m option: perl Makefile.PL -m /path/to/your.mk See the appropriate README file for your OS for more information and some alternatives. at Makefile.PL line 1081.
Говорила мне мама не работай под рутом.
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

Хех странно!
Поэкспериментировал с перемнными окружения:
$ENV{ORACLE_HOME}="/usr/lib/oracle/10.2.0.3/client";
$ENV{LD_LIBRARY_PATH}="/usr/lib/oracle/10.2.0.3/client/lib";
$ENV{NLS_LANG}="AMERICAN_CIS.CL8MSWIN1251";

Вместо
$ENV{ORACLE_HOME}="/usr/lib/oracle/10.2.0.3/client";
подставил:
$ENV{ORACLE_HOME}="/usr/lib/oracle/10.2.0.3/client/lib";

и ошибка стала выглядеть так:

Код:

Using DBI 1.58 (for perl 5.008008 on i586-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/auto/DBI/ Configuring DBD::Oracle for perl 5.008008 on linux (i586-linux-thread-multi) Remember to actually *READ* the README file! Especially if you have any problems. Using Oracle in /usr/lib/oracle/10.2.0.3/client/lib DEFINE _SQLPLUS_RELEASE = "1002000300" (CHAR) Oracle version 10.2.0.3 (10.2) Looks like an Instant Client installation, okay Your LD_LIBRARY_PATH env var is set to '/usr/lib/oracle/10.2.0.3/client/lib' Oracle sysliblist: ********************************************************* I can't find the header files I need in your Oracle installation. You probably need to install some more Oracle components. For Instant Client that means the SDK package. I'll keep going, but the compile will probably fail. See the appropriate README file for your OS for more information. ********************************************************* Checking for functioning wait.ph Constant subroutine __USE_POSIX undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 8. Constant subroutine __USE_POSIX2 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 9. Constant subroutine __USE_POSIX199309 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 10. Constant subroutine __USE_POSIX199506 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 11. Constant subroutine __USE_XOPEN undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 12. Constant subroutine __USE_XOPEN_EXTENDED undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 13. Constant subroutine __USE_UNIX98 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 14. Constant subroutine __USE_LARGEFILE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 16. Constant subroutine __USE_LARGEFILE64 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 17. Constant subroutine __USE_FILE_OFFSET64 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 18. Constant subroutine __USE_BSD undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 19. Constant subroutine __USE_SVID undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 20. Constant subroutine __USE_MISC undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 21. Constant subroutine __USE_GNU undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 23. Constant subroutine __USE_REENTRANT undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 24. Constant subroutine _POSIX_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 49. Constant subroutine _POSIX_C_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 51. Constant subroutine _XOPEN_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 53. Constant subroutine _XOPEN_SOURCE_EXTENDED undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 55. Constant subroutine _LARGEFILE64_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 57. Constant subroutine _LARGEFILE_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 104. Constant subroutine __GNU_LIBRARY__ undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 156. Operator or semicolon missing before &__inline at (eval 123) line 1. Ambiguous use of & resolved as operator & at (eval 123) line 1. Unquoted string "typedef" may clash with future reserved word at (eval 176) line 1. Operator or semicolon missing before &typedef at (eval 176) line 1. Ambiguous use of & resolved as operator & at (eval 176) line 1. Scalar found where operator expected at (eval 207) line 1, near "'int' $__val" (Missing operator before $__val?) Constant subroutine __need_timeval undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/bits/time.ph line 23. System: perl5.008008 linux ravel 2.6.22 #1 smp 20070921 22:29:00 utc i686 i686 i386 gnulinux Compiler: cc -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -Wall -pipe -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 Linker: /usr/bin/ld Sysliblist: Linking with -lclntsh. LD_RUN_PATH=/usr/lib/oracle/10.2.0.3/client/lib Using DBD::Oracle 1.21. Using DBD::Oracle 1.21. Using DBI 1.58 (for perl 5.008008 on i586-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i586-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?)


В любовм случае не хватает файлов которых нет в архиве, инет в системе, потому как не с клиентом оракл не с другими драйверами dbd, dbi они ен ставились.

Решил поставить oracle-instantclient-devel-10.2.0.3-1.i386, кажется здесь должны быть нужные файлы заголовков.
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: DBD:Oracle на linux

Сообщение gcc »

по ищи пакет! чтобы это скомпилировать возможно нужно будет оракл переустанавливать, и нужно чтобы соответсвовали версии...
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

запасной варинат: распаковать архив и прописать в коде путь к модулю, должно работать
Код
require "/путь/к/mysql.pm";
не помогает.


gcc писал(а):
27.06.2008 15:43
по ищи пакет! чтобы это скомпилировать возможно нужно будет оракл переустанавливать, и нужно чтобы соответсвовали версии...


Скачал и поставил oracle-instantclient-devel-10.2.0.3-1.(у меня все клиенты и модули версии 10.2.0.3) Вот что вышло:

Код:

long_code_here = Using DBI 1.58 (for perl 5.008008 on i586-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/auto/DBI/ Configuring DBD::Oracle for perl 5.008008 on linux (i586-linux-thread-multi) Remember to actually *READ* the README file! Especially if you have any problems. Using Oracle in /usr/lib/oracle/10.2.0.3/client/lib DEFINE _SQLPLUS_RELEASE = "1002000300" (CHAR) Oracle version 10.2.0.3 (10.2) Looks like an Instant Client installation, okay Your LD_LIBRARY_PATH env var is set to '/usr/lib/oracle/10.2.0.3/client/lib' Oracle sysliblist: Found header files in /usr/include/oracle/10.2.0.3/client. Checking for functioning wait.ph Constant subroutine __USE_POSIX undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 8. Constant subroutine __USE_POSIX2 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 9. Constant subroutine __USE_POSIX199309 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 10. Constant subroutine __USE_POSIX199506 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 11. Constant subroutine __USE_XOPEN undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 12. Constant subroutine __USE_XOPEN_EXTENDED undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 13. Constant subroutine __USE_UNIX98 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 14. Constant subroutine __USE_LARGEFILE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 16. Constant subroutine __USE_LARGEFILE64 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 17. Constant subroutine __USE_FILE_OFFSET64 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 18. Constant subroutine __USE_BSD undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 19. Constant subroutine __USE_SVID undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 20. Constant subroutine __USE_MISC undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 21. Constant subroutine __USE_GNU undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 23. Constant subroutine __USE_REENTRANT undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 24. Constant subroutine _POSIX_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 49. Constant subroutine _POSIX_C_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 51. Constant subroutine _XOPEN_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 53. Constant subroutine _XOPEN_SOURCE_EXTENDED undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 55. Constant subroutine _LARGEFILE64_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 57. Constant subroutine _LARGEFILE_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 104. Constant subroutine __GNU_LIBRARY__ undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 156. Operator or semicolon missing before &__inline at (eval 123) line 1. Ambiguous use of & resolved as operator & at (eval 123) line 1. Unquoted string "typedef" may clash with future reserved word at (eval 176) line 1. Operator or semicolon missing before &typedef at (eval 176) line 1. Ambiguous use of & resolved as operator & at (eval 176) line 1. Scalar found where operator expected at (eval 207) line 1, near "'int' $__val" (Missing operator before $__val?) Constant subroutine __need_timeval undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/bits/time.ph line 23. System: perl5.008008 linux ravel 2.6.22 #1 smp 20070921 22:29:00 utc i686 i686 i386 gnulinux Compiler: cc -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -Wall -pipe -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 Linker: /usr/bin/ld Sysliblist: Linking with -lclntsh. LD_RUN_PATH=/usr/lib/oracle/10.2.0.3/client/lib Using DBD::Oracle 1.21. Using DBD::Oracle 1.21. Using DBI 1.58 (for perl 5.008008 on i586-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i586-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?) ';




Ну вот, вроде откомпилилось с горем ополам.
Говорила мне мама не работай под рутом.
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

Посел удачной компиляции DBD-Oracle возникоа такая вот проблема:

на строке скрипта pdb.sh:
use DBD::Oracle;

выводит ошибку:
./pdb.sh
Can't load '/usr/lib/perl5/site_perl/5.8.8/i586-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libnnz10.so: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i586-linux-thread-multi/DynaLoader.pm line 230.
at ./pdb.sh line 4
Compilation failed in require at ./pdb.sh line 4.
BEGIN failed--compilation aborted at ./pdb.sh line 4.

Файлы Oracle.so и DynaLoader.pm в даных директориях существуют.
libnnz10.so - есть.

Help!
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: DBD:Oracle на linux

Сообщение vr13 »

скорее всего у вас что-то с инсталяцией oracle client'а не то: libnnz10.so (часть клиента oracle) - должна находиться там же, где libclntsh.so. зависимость должна существовать
$ ldd libclntsh.so
linux-gate.so.1 => (0xffffe000)
libnnz10.so => /home/oracle/product/10.2/lib/libnnz10.so (0xb6f99000)
libdl.so.2 => /lib/libdl.so.2 (0xb6f6c000)
libm.so.6 => /lib/libm.so.6 (0xb6f46000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb6f2e000)
libnsl.so.1 => /lib/libnsl.so.1 (0xb6f17000)
libc.so.6 => /lib/libc.so.6 (0xb6de9000)
/lib/ld-linux.so.2 (0x80000000)

чтобы убедиться что клиент oracle установился правильно, попробуйте подключиться к вашей базе штатным sqlplus
может быть просто дело в окружении: проверьте $ORACLE_HOME и LD_LIBRARY_PATH
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

Здраствуйте.

Код:

5-313-kolnix:/usr/lib/oracle/10.2.0.3/client/lib # ldd libclntsh.so ldd: warning: you do not have execution permission for `./libclntsh.so' linux-gate.so.1 => (0xffffe000) libnnz10.so => not found libdl.so.2 => /lib/libdl.so.2 (0xb7130000) libm.so.6 => /lib/libm.so.6 (0xb710b000) libpthread.so.0 => /lib/libpthread.so.0 (0xb70f4000) libnsl.so.1 => /lib/libnsl.so.1 (0xb70dc000) libc.so.6 => /lib/libc.so.6 (0xb6fa9000) /lib/ld-linux.so.2 (0x80000000)


Код:

5-313-kolnix:/usr/lib/oracle/10.2.0.3/client/lib # ldd libnnz10.so ldd: warning: you do not have execution permission for `./libnnz10.so' linux-gate.so.1 => (0xffffe000) libc.so.6 => /lib/libc.so.6 (0xb7c8e000) /lib/ld-linux.so.2 (0x80000000)


Код:

5-313-kolnix:/usr/lib/oracle/10.2.0.3/client/bin # ./sqlplus ./sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory


libnnz10.so был установлен с клиенотом oracle-instantclient-basic-10.2.0.3-1.i386.rpm:
/usr/lib/oracle/10.2.0.3/client/bin/genezi
/usr/lib/oracle/10.2.0.3/client/lib/libclntsh.so.10.1
/usr/lib/oracle/10.2.0.3/client/lib/libnnz10.so
/usr/lib/oracle/10.2.0.3/client/lib/libocci.so.10.1
/usr/lib/oracle/10.2.0.3/client/lib/libociei.so
/usr/lib/oracle/10.2.0.3/client/lib/libocijdbc10.so
/usr/lib/oracle/10.2.0.3/client/lib/ojdbc14.jar

Ошибок выдано не было. Находятся libnnz10.so с libclntsh.so и libsqlplus.so в одной директории (/usr/lib/oracle/10.2.0.3/client/lib).

Код:

total 102471 -rw-r--r-- 1 root root 1525 2006-11-15 22:38 glogin.sql lrwxrwxrwx 1 root root 17 2008-06-27 14:47 libclntsh.so -> libclntsh.so.10.1 -rw-r--r-- 1 root root 18825267 2006-11-15 22:37 libclntsh.so.10.1 -rw-r--r-- 1 root root 27822 2006-11-15 22:38 libheteroxa10.so -rw-r--r-- 1 root root 5486009 2006-11-15 22:37 libnnz10.so lrwxrwxrwx 1 root root 15 2008-06-27 14:47 libocci.so -> libocci.so.10.1 -rw-r--r-- 1 root root 1398088 2006-11-15 22:37 libocci.so.10.1 -rw-r--r-- 1 root root 72480394 2006-11-15 22:37 libociei.so -rw-r--r-- 1 root root 120135 2006-11-15 22:37 libocijdbc10.so -rw-r--r-- 1 root root 1434235 2006-11-15 22:38 libsqlplusic.so -rw-r--r-- 1 root root 1057777 2006-11-15 22:38 libsqlplus.so -rw-r--r-- 1 root root 772395 2006-11-15 22:38 libsqora.so.10.1 -rw-r--r-- 1 root root 1545954 2006-11-15 22:37 ojdbc14.jar -rw-r--r-- 1 root root 1645114 2006-11-15 22:38 orai18n.jar -rwxrwxr-x 1 root users 342 2008-06-28 12:27 tnsnames.ora


Однако зависимости для libnnz10.so не найдено. У вас кажется сервер установлен локально на машине, и зависимость ссылается на директоорию сервера. У меня сервер удаленный. При установке клиента пути $ORACLE_HOME и $LD_LIBRARY_PATH были прописаны по readme и в ходе установки принялись.
Вот что говорит makefile.pl.

Makefile.pl:

Код:

DBD-Oracle-1.21 Using DBI 1.58 (for perl 5.008008 on i586-linux-thr ead-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/auto/DBI/ Configuring DBD::Oracle for perl 5.008008 on linux (i586-linux-thread-multi) Remember to actually *READ* the README file! Especially if you have any problems. Using Oracle in /usr/lib/oracle/10.2.0.3/client/lib DEFINE _SQLPLUS_RELEASE = "1002000300" (CHAR) Oracle version 10.2.0.3 (10.2) Looks like an Instant Client installation, okay Your LD_LIBRARY_PATH env var is set to '/usr/lib/oracle/10.2.0.3/client/lib' Oracle sysliblist: Found header files in /usr/include/oracle/10.2.0.3/client. Checking for functioning wait.ph Constant subroutine __USE_POSIX undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 8. Constant subroutine __USE_POSIX2 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 9. Constant subroutine __USE_POSIX199309 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 10. Constant subroutine __USE_POSIX199506 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 11. Constant subroutine __USE_XOPEN undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 12. Constant subroutine __USE_XOPEN_EXTENDED undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 13. Constant subroutine __USE_UNIX98 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 14. Constant subroutine __USE_LARGEFILE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 16. Constant subroutine __USE_LARGEFILE64 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 17. Constant subroutine __USE_FILE_OFFSET64 undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 18. Constant subroutine __USE_BSD undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 19. Constant subroutine __USE_SVID undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 20. Constant subroutine __USE_MISC undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 21. Constant subroutine __USE_GNU undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 23. Constant subroutine __USE_REENTRANT undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 24. Constant subroutine _POSIX_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 49. Constant subroutine _POSIX_C_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 51. Constant subroutine _XOPEN_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 53. Constant subroutine _XOPEN_SOURCE_EXTENDED undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 55. Constant subroutine _LARGEFILE64_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 57. Constant subroutine _LARGEFILE_SOURCE undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 104. Constant subroutine __GNU_LIBRARY__ undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/features.ph line 156. Operator or semicolon missing before &__inline at (eval 123) line 1. Ambiguous use of & resolved as operator & at (eval 123) line 1. Unquoted string "typedef" may clash with future reserved word at (eval 176) line 1. Operator or semicolon missing before &typedef at (eval 176) line 1. Ambiguous use of & resolved as operator & at (eval 176) line 1. Scalar found where operator expected at (eval 207) line 1, near "'int' $__val" (Missing operator before $__val?) Constant subroutine __need_timeval undefined at /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/bits/time.ph line 23. System: perl5.008008 linux ravel 2.6.22 #1 smp 20070921 22:29:00 utc i686 i686 i386 gnulinux Compiler: cc -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -Wall -pipe -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 Linker: /usr/bin/ld Sysliblist: Linking with -lclntsh. LD_RUN_PATH=/usr/lib/oracle/10.2.0.3/client/lib Using DBD::Oracle 1.21. Using DBD::Oracle 1.21. Using DBI 1.58 (for perl 5.008008 on i586-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/i586-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 install:

Код:

5-313-kolnix:/home/koluchy/bin/DBD-Oracle-1.21 # make Skip blib/lib/DBD/Oracle.pm (unchanged) Skip blib/lib/DBD/mkta.pl (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/arch/auto/DBD/Oracle/mk.pm (unchanged) Skip blib/lib/DBD/Oracle/GetInfo.pm (unchanged) cc -c -I/usr/include/oracle/10.2.0.3/client -I/usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -Wall -pipe -DVERSION=\"1.21\" -DXS_VERSION=\"1.21\" -fPIC "-I/usr/lib/perl5/5.8.8/i586-linux-thread-multi/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.3\" Oracle.c cc -c -I/usr/include/oracle/10.2.0.3/client -I/usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -Wall -pipe -DVERSION=\"1.21\" -DXS_VERSION=\"1.21\" -fPIC "-I/usr/lib/perl5/5.8.8/i586-linux-thread-multi/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.3\" dbdimp.c dbdimp.c: In function ‘ora_db_login6’: dbdimp.c:768: warning: value computed is not used dbdimp.c: In function ‘ora_st_execute_array’: dbdimp.c:3269: warning: unused variable ‘sv2’ cc -c -I/usr/include/oracle/10.2.0.3/client -I/usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -g -Wall -pipe -DVERSION=\"1.21\" -DXS_VERSION=\"1.21\" -fPIC "-I/usr/lib/perl5/5.8.8/i586-linux-thread-multi/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.3\" oci8.c oci8.c: In function ‘get_attr_val’: oci8.c:1437: warning: pointer targets in passing argument 1 of ‘__builtin___strcat_chk’ differ in signedness oci8.c:1437: warning: pointer targets in passing argument 1 of ‘__strcat_ichk’ differ in signedness oci8.c:1438: warning: pointer targets in passing argument 1 of ‘__builtin___strcat_chk’ differ in signedness oci8.c:1438: warning: pointer targets in passing argument 1 of ‘__strcat_ichk’ differ in signedness oci8.c:1460: warning: pointer targets in passing argument 6 of ‘fetch_lob’ differ in signedness oci8.c: In function ‘ora_st_fetch’: oci8.c:2627: warning: pointer targets in passing argument 3 of ‘Perl_sv_setpvn’ differ in signedness Running Mkbootstrap for DBD::Oracle () chmod 644 Oracle.bs rm -f blib/arch/auto/DBD/Oracle/Oracle.so LD_RUN_PATH="/usr/lib/oracle/10.2.0.3/client/lib" cc -shared Oracle.o dbdimp.o oci8.o -o blib/arch/auto/DBD/Oracle/Oracle.so \ -L/usr/lib/oracle/10.2.0.3/client/lib -lclntsh \ 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
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: DBD:Oracle на linux

Сообщение vr13 »

koluchy писал(а):
30.06.2008 10:40
...
Однако зависимости для libnnz10.so не найдено. У вас кажется сервер установлен локально на машине, и зависимость ссылается на директоорию сервера. У меня сервер удаленный. При установке клиента пути $ORACLE_HOME и $LD_LIBRARY_PATH были прописаны по readme и в ходе установки принялись.
Вот что говорит makefile.pl.
...


убедитесь, что $ORACLE_HOME установлено и указывает на верный каталог буквально перед выполнением вашего теста, например

export ORACLE_HOME=/usr/lib/oracle/10.2.0.3/client
ldd $ORACLE_HOME/lib/libclntsh.so
$ORACLE_HOME/bin/sqlplus

у меня oraperl работает (был установлен сршенно без проблем), с разницей что клиент оракла ставился с дистрибутива, а не из пакета. база - также, как и в вашем случае, удаленная. думаю, что разница "пакет" или "дистрибутив" не существенна, т.к клиент - это просто набор библиотек и некоторых сопутствующих им файлов, расположенных в определенной структуре директорий, на которую указывает окружение - $ORACLE_HOME. вполне вероятно, что в пакетном варианте клиента не хватает чего-то, может быть поэтому у вас были проблемы установкой..
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

Пробовал качать клиент с различных репозиториев и различных версий.
Переменные указывал явно.

Код скрипта:

Код:

5-313-kolnix:/home/koluchy/bin # cat pdb.pl #! /usr/bin/perl -w # Enviroment variable $ENV{ORACLE_HOME}="/usr/lib/oracle/10.2.0.3/client"; (и так тоже пробовал /usr/lib/oracle/10.2.0.3/client/lib - по доку клиента) $ENV{LD_LIBRARY_PATH}="/usr/lib/oracle/10.2.0.3/client/lib"; $ENV{NLS_LANG}="AMERICAN_CIS.CL8MSWIN1251"; $ENV{TNS_ADMIN}="/usr/lib/oracle/10.2.0.3/client/lib/tnsnames.ora"; use strict; use DBI 1.58; use DBD::Oracle; # Connect variable #my $sid="BASE3"; #my $host="172.17.82.10"; my $user="user"; my $password="user"; #my $port="1523"; my $dbh=DBI->connect("dbi:Oracle:host=172.17.82.10;sid=BASE3;port=1523",$user,$password,{PrintError=>0,AutoCommit=>0,RaiseError=>1}) or die "Couldnot connect to Oracle:$DBI::errstr\n"; print "\n-------------------------------------------------------------\n\n";


Ошибка:

Код:

5-313-kolnix:/home/koluchy/bin # ./pdb.pl Can't load '/usr/lib/perl5/site_perl/5.8.8/i586-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libnnz10.so: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i586-linux-thread-multi/DynaLoader.pm line 230. at ./pdb.pl line 11 Compilation failed in require at ./pdb.pl line 11. BEGIN failed--compilation aborted at ./pdb.pl line 11.
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: DBD:Oracle на linux

Сообщение vr13 »

хз трщ майор. у меня примерно ваша конструкция работает (не важно, что клиент 10 работает с базой 9)

#!/usr/bin/perl
$ENV{ORACLE_HOME}="/home/oracle/product/10.2";
use DBI;
use DBD::Oracle;
$dbh=DBI->connect("dbi:Oracle:host=192.168.1.11;sid=V92","test","test");

попробуйте разве что списать и поставить оригинального клиента (http://otn.oracle.com). и пересобрать DBI/DBD. кстати, ORACLE_HOME должен таки указывать на верхушку деревца директорий установленного клиента
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

vr13 писал(а):
30.06.2008 17:22
хз трщ майор. у меня примерно ваша конструкция работает (не важно, что клиент 10 работает с базой 9)

#!/usr/bin/perl
$ENV{ORACLE_HOME}="/home/oracle/product/10.2";
use DBI;
use DBD::Oracle;
$dbh=DBI->connect("dbi:Oracle:host=192.168.1.11;sid=V92","test","test");

попробуйте разве что списать и поставить оригинального клиента (http://otn.oracle.com). и пересобрать DBI/DBD. кстати, ORACLE_HOME должен таки указывать на верхушку деревца директорий установленного клиента


Меня заинтерисовало почему у тебя в сусе10.2 клиент поставился в /home/oracle/product/10.2?
У меня в /usr/lib/oracle/10.2.0.3/client. Или ты вручную пути прописывал? Или это по умолчанию пакет из дистрибутива так ставится?

По ссылке http://www.oracle.com/technology/software/...ient/index.html не вижу хотьб убей клиента под linux32.
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: DBD:Oracle на linux

Сообщение vr13 »

хм, однако он там есть - и x86 и x86-64 :)

на самом деле, интересно было поэкпериментировать: списал то, что называется instant client package - basic
распаковал его в произвольное место, установил LD_LIBRARY_PATH на это место и такая штука - выполнилась:

#!/usr/bin/perl
use DBI;
use DBD::Oracle;

$dbh=DBI->connect("dbi:Oracle:host=192.168.1.11;sid=V92","test","test");
$csr=$dbh->prepare('select name,org from ptest');
$csr->execute;
while (($name,$org) =
$csr->fetchrow_array()) { print $name," ",$org,"\n"; }
$dbh->disconnect;

спасибо за ссылку. я раньше ради клиента списывал отсюда: http://www.oracle.com/technology/software/...1linuxsoft.html (почи 500мб между прочим). а по вашей ссылке всего 40мб и ничего ставить не надо. проверялось все на gentoo, поэтому с rpm было лень возиться. на suse тоже работает. на самом деле, ораклу версия линукса безразлична, главное чтобы libc был той системы. ну и битность совпадала, разумеется :)

спасибо еще раз :)
Спасибо сказали:
koluchy
Сообщения: 109
ОС: openSUSE (Novell)

Re: DBD:Oracle на linux

Сообщение koluchy »

vr13 писал(а):
01.07.2008 21:48
хм, однако он там есть - и x86 и x86-64 :)

на самом деле, интересно было поэкпериментировать: списал то, что называется instant client package - basic
распаковал его в произвольное место, установил LD_LIBRARY_PATH на это место и такая штука - выполнилась:


Какая у вас архитектура? У меня Linux 32-bit. Под 32 по этой ссылке нету.
Какой именно версии вы "спиисал то, что называется instant client package - basic" :-)

Если не затруднит напишите как указывался LD_LYBRARY_PATH и в каком месте вы его прописывали в вашем эксперименте. Очень буду признателен. Мjжет не правильно делаю.//
Говорила мне мама не работай под рутом.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: DBD:Oracle на linux

Сообщение vr13 »

koluchy писал(а):
02.07.2008 12:39
Какая у вас архитектура? У меня Linux 32-bit. Под 32 по этой ссылке нету.
Какой именно версии вы "спиисал то, что называется instant client package - basic" :-)

Если не затруднит напишите как указывался LD_LYBRARY_PATH и в каком месте вы его прописывали в вашем эксперименте. Очень буду признателен. Мjжет не правильно делаю.//


у меня x86-32, ядра 2.6.23 (gentoo) и 2.6.18 (suse 10.2). я не знаю как вам доказать, но по вашей ссылке открывается такая картинка (attached). из нее следует, что instant client для x86 - есть

на самом деле, для того, чтобы нормально собрать .../i586-linux-thread-multi/auto/DBD/Oracle/Oracle.so из DBD::Oracle нужно списать нормального клиента (ссылка была выше) и установить его - там есть все .h и *mk, которые требуются для сборки. после того, как вы собрали DBD::Oracle, большого клиента можно удалять и подменить его на instant (таким образом вы сэкономите 450мб места на диске, если кроме perl или jdbc программирования вам ничего больше не надо). как ставится полный клиент написано в документации, которая есть внутри клиента. то, что полный клиент версии 10.2.0.1, а instant - 10.2.0.4 вас беспокоить не должно. если место на диске - не проблема - лучше оставьте полный, в вашем проекте это может пригодиться

вообще-то проблемы тут нет совсем, это ставится в течение 15мин, совсем не зависит от версии ядра/названия дистрибутива и работает вроде как без проблем. даже неудобно переписываться на эту тему так долго :)

в случае полного клиента LD_LIBRARY_PATH должно указывать на $ORACLE_HOME/lib, для instant client - прям на то место где находится libclntsh.so
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Re: DBD:Oracle на linux

Сообщение halturin »

koluchy писал(а):
02.07.2008 12:39
vr13 писал(а):
01.07.2008 21:48
хм, однако он там есть - и x86 и x86-64 :)

на самом деле, интересно было поэкпериментировать: списал то, что называется instant client package - basic
распаковал его в произвольное место, установил LD_LIBRARY_PATH на это место и такая штука - выполнилась:


Какая у вас архитектура? У меня Linux 32-bit. Под 32 по этой ссылке нету.
Какой именно версии вы "спиисал то, что называется instant client package - basic" :-)

Если не затруднит напишите как указывался LD_LYBRARY_PATH и в каком месте вы его прописывали в вашем эксперименте. Очень буду признателен. Мjжет не правильно делаю.//


http://www.google.com/search?ie=UTF-8&...nt+client+linux
Спасибо сказали: