Я хочу установить модуль DBD::Oracle
в Cygwin. Я загрузил Oracle Instant Client (версия 12.1) по адресу C:\Oracle\instantclient_12_1
. Я также загрузил SDK и SQLPlus и извлек их в директорию instantclient_12_1. Я установил свой путь ORACLE_HOME как export ORACLE_HOME=/cygdrive/c/Oracle/instantclient_12_1
и LD_LIBRARY_PATH как export LD_LIBRARY_PATH=/cygdrive/c/Oracle/instantclient_12_1/lib
. При попытке установить пакет, я получаю следующее:Нужна помощь в установке DBD :: Oracle на Cygwin
I'm having trouble finding your Oracle version number... trying harder
WARNING: I could not determine Oracle client version so I'll just
default to version 8.0.0.0. Some features of DBD::Oracle may not work.
Oracle version based logic in Makefile.PL may produce erroneous results.
You can use "perl Makefile.PL -V X.Y.Z" to specify a your client version.
Oracle version 8.0.0.0 (8.0)
DBD::Oracle no longer supports Oracle client versions before 9.2
Try a version before 1.25 for 9 and 1.18 for 8! at Makefile.PL line 271.
Warning: No success on command[/usr/bin/perl Makefile.PL]
'YAML' not installed, will not store persistent state
PYTHIAN/DBD-Oracle-1.66.tar.gz
/usr/bin/perl Makefile.PL -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
Почему установщик не в состоянии обнаружить версию? Что мне нужно сделать, чтобы установить модуль успешно?
EDIT: Следуя рекомендациям ниже, я попробовал perl Makefile.PL -V 12.1.0
. Я получил результат, как:
Installing on a cygwin, Ver#1.7
Using Oracle in /cygdrive/c/Oracle/instantclient_12_1
If sqlplus failed due to a linker/symbol/relocation/library error or similar problem
then it's likely that you've not configured your environment correctly.
Specifically, your PATH environment variable
set to include the directory containing the Oracle libraries.
Forcing Oracle version to be treated as 12.1.0
Oracle version 12.1.0 (12.1)
Using OCI directory 'sdk'
client_version=12.1
DEFINE= -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"12.1.0\" -DORA_OCI_102 -DORA_OCI_112
Checking for functioning wait.ph
System: perl5.014004 cygwin_nt-6.1 yaakov04 1.7.18(0.26353) 2013-03-07 19:25 x86_64 cygwin
Compiler: gcc -O3 -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -fstack-protector
Linker: /usr/bin/ld
Sysliblist:
Checking if your kit is complete...
Looks good
LD_RUN_PATH=/cygdrive/c/Oracle/instantclient_12_1/lib:/cygdrive/c/Oracle/instantclient_12_1/rdbms/lib
Using DBD::Oracle 1.66.
Using DBD::Oracle 1.66.
Using DBI 1.623 (for perl 5.014004 on cygwin-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.14/x86_64-cygwin-threads/auto/DBI/
Generating a GNU-style Makefile
Writing Makefile for DBD::Oracle
Writing MYMETA.yml and MYMETA.json
Но после того, как make, make test and make install
, модуль еще не установлен должным образом, и я не могу запускать любые сценарии с помощью этого (make test
вернулся 37/38 не удалось случаев). Я не могу понять, как действовать.
http://stackoverflow.com/a/11408088/1251660 – slayedbylucifer
Этот связанный вопрос не связан с cygwin. Мне нужно знать, должен ли ORACLE_HOME, который я устанавливаю, быть в формате DOS или POSIX. Кроме того, не могу ли я просто установить модуль из cpan вместо загрузки, а затем установить его вручную? – user828647
Связанный ответ упоминает установку «LD_LIBRARY_PATH», и вы не упомянули об этом? Вы установили это, и какова его ценность? – Joel