2013-11-24 9 views
0

DBD::Oracle 모듈을 Cygwin에 설치하고 싶습니다. C:\Oracle\instantclient_12_1에 Oracle Instant Client (버전 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으로 설정했습니다. 패키지를 설치하려고하면 다음과 같은 메시지가 나타납니다.Cygwin에서 DBD :: Oracle을 설치하는 데 도움이 필요합니다.

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 

왜 설치 프로그램에서 버전을 감지 할 수 없습니까? 모듈을 성공적으로 설치하려면 어떻게해야합니까?

편집 : 아래 제안에 따라 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

나는 CygWin 터미널을 관리자로 실행하고 모든 것이 작동 한 후 this guide을 추적했습니다. (오라클 버전을 결정하는 데 도움이)

  • instantclient-basic- *
  • instantclient-SQLPLUS의 *
  • : 물론

    당신은 32 비트가 버전 대신이 .rpm .zip 파일을 승리 download 필요 instantclient-sdk *

그리고 예를 들어 모두 압축을 풉니 다. C : 오라클 \

시작 Cygwin에서 관리자로 터미널과 수행 다음 단계 : \ cpan DBD::Oracle와 .cpan에

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 

CD// DBD-오라클 *를 구축 폴더

perl Makefile.PL 

make 

make install 

확인 확인합니다 설치.