2010-06-23 3 views
0

저는 방금 루비를 배우고 사용하기 시작했습니다. 필자는 Oracle 10g 데이터베이스에 연결하여 select를 실행하고 그 결과를 화면에 '넣는'슈퍼 단순 테스트 스크립트를 가지고 있습니다. 이것은 Solaris 10 서버에 있습니다. 스크립트를 'apps'사용자 (자동화 된 스크립트를 실행하는 시스템 사용자)로 실행하면 스크립트는 벌금을 부과합니다. 직접 실행하면 오류가 발생합니다.OCIError on 'require'; 사용 권한 문제가 있습니까?

oci8lib.c:98:in oci8lib.so: OCI Library Initialization Error (OCIError) 
    from /usr/local/lib/ruby/site_ruby/1.8/oci8.rb:25 
    from ./dbTest.rb:3:in `require' 
    from ./dbTest.rb:3 

내 환경 변수가 'apps'사용자의 값과 일치합니다. 이 파일/디렉토리 또는 다른 사용 권한 문제가 있다고 가정하지만, 어디서부터 시작해야할지 모르겠다. oci8.rb 파일의 25 행은 "require 'oci8lib_18'"지시문입니다. oci8lib_18.so 파일과 그것에 접속하는 dirs에 대한 사용 권한을 읽고 실행했지만 어떤 dir을 모르는지 에 액세스해야합니다.

권한을 확인해야하는 파일/디렉토리에 대한 제안 사항이있는 사람이 있습니까? 또는 그 문제가 무엇인지에 대한 다른 생각?

UPDATE OCI8을 지원하는 사람에게 전자 메일을 보내고 여러 오라클 디렉토리에 로그인 정보가 필요한 정보에 액세스하지 못하게하는 권한이 있음이 밝혀졌습니다. 간단한 테스트는 실패한 sqlplus를 실행하려고 시도하는 것이 었습니다.

데이브

답변

0

OCI8을 지원하는 사람에게 전자 메일을 보내고 여러 Oracle 디렉토리에 로그인 정보가 필요한 정보에 액세스하지 못하게하는 권한이 있음이 밝혀졌습니다. 간단한 테스트는 실패한 sqlplus를 실행하려고 시도하는 것이 었습니다.

2

선험적으로 나는 모른다. 다른 루비 응용 프로그램도 OCI를 사용하여 실행합니까? 일반적으로 라이브러리 및 부속 라이브러리는 모두 rwx-r-xr-x로 설치됩니다. 올바르게 설치된 라이브러리에서는 사용 권한 오류를 볼 수 없습니다. 그래서 LD_LIBRARY_PATH에있는 항목과 같은 환경에서 뭔가를 잃어 버렸다고 생각합니다.

ldd는 런타임 이미지와 거의 같은 방법으로 공유 라이브러리를 엽니 다. 이 오류없이, 외부 링크 된 라이브러리를 모두 표시해야

cd /path/to/library # where oci8lib.so lives. 
ldd oci8lib.so 

이 먼저 작동하는 경우

참조하십시오. ldd가 작동하면 LD_LIBRARY_PATH를 확인하여 현재있는 경로가 여기에 선언되어 있는지 확인하십시오. 작동하지 않으면 누락 된 라이브러리 또는 라이브러리에 대한 비표준 경로와 같은 설치 문제가 발생합니다.

결과를 저희에게 보내주십시오.

+0

내 질문을 업데이트했습니다. 'ldd'에 대한 팁 주셔서 감사합니다; 나는 전에 그것을 사용한 적이 없다. – DaveKub