2013-11-24 4 views
0

Я хочу установить модуль 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 не удалось случаев). Я не могу понять, как действовать.

+0

http://stackoverflow.com/a/11408088/1251660 – slayedbylucifer

+0

Этот связанный вопрос не связан с cygwin. Мне нужно знать, должен ли ORACLE_HOME, который я устанавливаю, быть в формате DOS или POSIX. Кроме того, не могу ли я просто установить модуль из cpan вместо загрузки, а затем установить его вручную? – user828647

+0

Связанный ответ упоминает установку «LD_LIBRARY_PATH», и вы не упомянули об этом? Вы установили это, и какова его ценность? – Joel

ответ

0

И вы пытались следуя инструкциям, и сказал:

perl Makefile.PL -V 12.1.0 

?

+0

Никто, кажется, не знает, что может быть; попробуйте список рассылки cygwin? – ysth

0

Я следовал this guide после того, как я запустил терминал CygWin в качестве администратора, и все сработало.

Конечно, вы должны download 32-разрядный выиграть .zip версию вместо .rpm файлов:

  • instantclient-Basic- *
  • instantclient-Sqlplus * (помогает определяющий оракулу версии)
  • instantclient-sdk *

и разархивируйте их все, например. C: \ Oracle \

Start Cygwin терминал в качестве администратора и выполнить следующие шаги:

export ORACLE_HOME=/cygdrive/c/Oracle/instantclient_12_1 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib 
export ORACLE_DSN=DBI:Oracle:host=<oracle hostname>;sid=<oracle sid> 
export ORACLE_USERID=user/[email protected]<sid> 

cpan get DBD::Oracle 

кд в .cpan/строить/DBD-Oracle * папка

perl Makefile.PL 

make 

make install 

Проверьте с cpan DBD::Oracle проверить установки.

Смежные вопросы