저는 Mac OS X 10.8에서 perl 모듈 DBD :: Oracle을 사용하고 싶습니다. CPAN을 통해 DBI를 설치했습니다. Oracle 인스턴트 클라이언트 11.2 (basic, sqlplus 및 jdk)를 다운로드했습니다. /usr/local/oracle에 압축을 풉니 다.instantclient와 함께 DBD :: Oracle을 사용하는 중 오류가 발생했습니다. 11.2
$ ls /usr/local/oracle/instantclient_11_2/
BASIC_README libnnz11.dylib ojdbc6.jar
SQLPLUS_README libocci.dylib.11.1 sdk
adrci libociei.dylib sqlplus
genezi libocijdbc11.dylib uidrvci
glogin.sql libsqlplus.dylib xstreams.jar
libclntsh.dylib libsqlplusic.dylib
libclntsh.dylib.11.1 ojdbc5.jar
그런 다음 설치된 DBD :: Oracle. 이제 DBD :: Oracle을 사용하려고 할 때 오류가 발생합니다.
install_driver(Oracle) failed: Can't load '/Library/Perl/5.12/darwin-thread-multi-
2level/auto/DBD/Oracle/Oracle.bundle' for module DBD::Oracle:
dlopen(/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/Oracle/Oracle.bundle, 1):
Library not loaded: /ade/b/2649109290/oracle/rdbms/lib/libclntsh.dylib.11.1
Referenced from: /Library/Perl/5.12/darwin-thread-multi-
2level/auto/DBD/Oracle/Oracle.bundle
Reason: image not found at /System/Library/Perl/5.12/darwin-thread-multi-
2level/DynaLoader.pm line 204.
나는 DYLD_LIBRARY_PATH은 =/usr/지방/오라클/instaclient_11_2 내가하지 단서 내가 잘못하고있는 중이 것을 가지고있다.
해결 : sqlplus를 실행하려고 할 때 동일한 오류가 발생했습니다. 내 oracle 클라이언트 디렉토리를 글로벌 PATH 변수에 추가 했으므로 이제 작동 중입니다.
톱은이 튜토리얼에서 동일한했다 : http://www.janhellevik.no/?p=521
Mac OS X의 동적 로더에 대한 질문에 대답하기에 충분하지 않지만 그 경로 (/ ade/b/2649109290/oracle/rdbms/lib/libclntsh.dylib.11.1')는 실제로 문제가있는 것처럼 보입니다. 오라클 클라이언트 라이브러리를 구축 한 오라클 사용자가 사용한 경로와 같으며 여전히 오라클 라이브러리에 인코딩되어있는 것처럼 보입니다. – rra
내 oracle 클라이언트 디렉토리를 내 전역 PATH 변수에 추가하여 해결되었습니다. 가장 좋은 해결책은 아니지만 나에게 충분하다. – janseeuw