Perl DBD:: Oracle 모듈 설치
누가 Perl 설치 방법을 안내해 주시겠습니까?DBD::Oracle
모듈?
지금까지 제가 한 일은 다음과 같습니다.
- 플랫폼: RHEL 5.8 64비트
- 설치된 Perl DBI 패키지
- 리눅스용 Oracle Instant 클라이언트 64비트(인스턴트 클라이언트용 기본 + sdk + sqlplus 구성 요소) 설치
- 올바른 설정
$ORACLE_HOME
그리고.$LD_LIBRARY_PATH
그럼 내가 할 때
perl Makefile.pl
다음 오류와 함께 실패합니다.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.
인스턴트 클라이언트 버전: 11.1.0
- 그
DBD::Oracle
버전은 1.44입니다.
Oracle Instant 클라이언트를 성공적으로 설치했다면 제가 무엇을 놓쳤는지 알려주실 수 있나요?
설치가 가능합니까?DBD::Oracle
Oracle 인스턴트 클라이언트를 사용하지 않고도 사용할 수 있습니까?
- ExtUtils-MakeMaker 모듈이 없는 경우 설치(
sudo yum install perl-ExtUtils-MakeMaker
) - Perl DBI 모듈 설치(
$ yum install perl-DBI
) Oracle Instant Client의 경우 3RPM 이하로 수동으로 설치합니다(Instant Client Downloads for Linux x86-64).예는 v11.2.0.3.0-1에 대한 것입니다. 아래 명령을 실제 버전에 맞게 조정합니다.)
oracle-instantclient11.2-basic-11.2.0.3.0-1 oracle-instantclient11.2-devel-11.2.0.3.0-1 oracle-instantclient11.2-sqlplus-11.2.0.3.0-1
저는 64비트 리눅스 박스를 사용하고 있으니 RPM 파일 이름을 적절히 선택하세요.비슷한 것sudo yum -y install oracle-instantclient*rpm
해야 합니다)
변수 아래 설정:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib export ORACLE_HOME=/usr/lib/oracle/11.2/client64
MacOS 사용자에게는 다음이 필요합니다.
DYLD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/
추가
ORACLE_HOME
당신에게PATH
변수.DBD 다운로드:: CPAN의 오라클
모듈을 분리하고 아래 명령을 지정된 순서대로 실행합니다.
perl Makefile.PL make sudo make install
gcc 누락에 대한 불만이 있을 경우 (일시적으로) 설치 후 제거할 수 있습니다.
완료!!!
제가 직면했던 문제들은 잘못된 것 때문이었습니다.LD_LIBRARY_PATH
로 설정했습니다./usr/lib/oracle/11.2/client64
반면에 정확한 값은/usr/lib/oracle/11.2/client64/lib
.
물론, 이것은 저와 같은 초보자에게 훌륭한 배움이었습니다.
DBD 설치 방법:: DBD 설치에 필요한 모든 단계가 포함된 Oracle:: Oracle CPAN 모듈. 간단한 설치가 아닙니다.그 목적은 두통을 줄이고 반복 가능한 과정으로 바꾸는 것입니다.
다음은 CentOS 7.2에서 yum 패키지와 CPAN을 사용하여 수행한 작업입니다.여기에서는 Oracle 버전 12.1을 사용하고 있다고 가정하지만 대부분의 버전이 이러한 방식으로 작동할 것으로 예상됩니다.
Oracle Instant Client 설치
yum install oracle-instantclient12.1-basic-12.1.0.2.0-1 oracle-instantclient12.1-devel-12.1.0.2.0-1 oracle-instantclient12.1-sqlplus-12.1.0.2.0-1
데모 만들기 파일 복사
설치에서는 *.mk 파일이 /usr/share/oracle/12.1/client64에 있어야 하지만 yum 패키지 설치에서는 파일이 /usr/share/oracle/12.1/client64/demo에 있어야 합니다.
sudo cp /usr/share/oracle/12.1/client64/demo/* /usr/share/oracle/12.1/client64
.bashrc 수정
~/.bashrc에 다음 행을 추가합니다.
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
export PATH=$ORACLE_HOME:$PATH
이제 파일의 소스합니다.
source ~/.bashrc
CPAN 및 DBI 업데이트
CPAN 및 DBI를 최신 버전으로 업데이트
cpan> install CPAN
cpan> reload cpan
cpan> install DBI
DBD 설치::오라클
cpan> install DBD::Oracle
레이드빌 루시퍼의 대답에 약간의 추가.질문에 언급된 것과 같은 문제가 있었습니다.저는 레이드빌 루시퍼가 묘사한 모든 단계를 수행했습니다.하지만 여기서 언급한 것과 같은 문제가 있습니다.
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /opt/oracle/app/oracle/product/11.2.0/client_1/lib//libclntsh.so when searching for -lclntsh
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lclntsh
그래서 저는 다음과 같은 심볼릭 링크를 만들었습니다.
ln -s /opt/oracle/app/oracle/product/<YOUR_ORACLE_VERSION>/client_1/lib/libclntsh.so $ORACLE_HOME/libclntsh.so*
그 단계 이후에 위의 오류(-lclntsh를 찾을 수 없음)가 수정되었습니다.make 명령 실행에 오류가 없습니다.
제가 여전히 가지고 있는 유일한 문제는 왜 이 상징적인 연결이 필요한지 이해할 수 없다는 것입니다.
언급URL : https://stackoverflow.com/questions/11407513/perl-dbdoracle-module-installation
'programing' 카테고리의 다른 글
Visual Studio Code: .git 폴더/파일 숨김 (0) | 2023.07.01 |
---|---|
유형 스크립트: 메서드는 정적일 수 있습니다. (0) | 2023.07.01 |
클래스 [org.스프링 프레임워크]를 검사하지 못했습니다.security.config.config.confirmation.web.configuration.웹 보안 구성] (0) | 2023.07.01 |
ggplot2의 주석에서 텍스트를 왼쪽 정렬하는 방법 (0) | 2023.07.01 |
패키지에서 사용되지 않는 npm 패키지를 찾습니다.제이손 (0) | 2023.07.01 |