var을 Perl 스크립트에서 Oracle 라이브러리를 사용할 수 없습니다.% ENV가 작동하지 않아 공유 라이브러리를 사용할 수 없습니다.
install_driver(Oracle) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 200. at (eval 3) line 3 Compilation failed in require at (eval 3) line 3. Perhaps a required shared library or dll isn't installed where expected at persistence.perl line 22
웹에서 검색 내가 ENV를 설정하는 올바른 방법은 펄에 바르 보았다 : 나는 $ENV{'ORACLE_HOME'}
및 $ENV{'LD_LIBRARY_PATH'}
를 인쇄 할 경우
BEGIN {
$ORACLE_HOME = "/usr/lib/oracle/10.2.0.3/client64";
$LD_LIBRARY_PATH = "$ORACLE_HOME/lib";
$ORACLE_SID="prod";
$ENV{ORACLE_SID}=$ORACLE_SID;
$ENV{ORACLE_HOME}= $ORACLE_HOME;
$ENV{LD_LIBRARY_PATH}= $LD_LIBRARY_PATH;
};
모두 내 스크립트를 실행할 때 오류가 확인을 보이지만 해시는 %ENV
입니다. 유닉스 쉘 (export LD_LIBRARY_PATH=...
)를 통해 ORACLE_HOME
및 LD_LIBRARY_PATH
내보내기
가 올바르게 작동합니다. 어떤 충고?
필자는 Oracle과 Perl을 사용해 봐야만했기 때문에 오랜 시간이 걸렸습니다. Perl 모듈에 필요한 라이브러리 중 하나는 개발자가 설치하는 것과 함께 설치되지 않는다는 것을 기억합니다. 파일을 추출하고 데이터베이스 패키지에서 라이브러리를 가져와야합니다. –
쉘을 통해 해당 경로를 내 보내면 올바로 작동하기 때문에 이상합니다. 누락 된 라이브러리와 관련된 문제가없는 것 같습니다. – Daniele
쉘 스크립트 래퍼는 우리가 항상 어떻게했는지입니다. –