sqlplus: 공유 라이브러리를 로드하는 중 오류가 발생했습니다. libsqlplus.so: 공유 개체 파일을 열 수 없습니다. 해당 파일이나 디렉터리가 없습니다.

sqlplus: 공유 라이브러리를 로드하는 중 오류가 발생했습니다. libsqlplus.so: 공유 개체 파일을 열 수 없습니다. 해당 파일이나 디렉터리가 없습니다.
  • echo $PATH나에게 아래 결과를 제공합니다 :

/home/mayank/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games :/usr/lib/jvm/java-7-oracle/bin:/usr/lib/jvm/java-7-oracle/db/bin:/usr/lib/jvm/java-7-oracle/jre/bin: /usr/lib/oracle/12.1/client/bin

  • echo $ORACLE_HOME가져오기:

/usr/lib/oracle/12.1/클라이언트

  • echo LD_LIBRARY_PATH제공 (이전에는 설정했지만 /etc/bash.bashrc지금은 아래와 같이 표시됩니다.)

LD_LIBRARY_PATH

vim아래의 쇼를 위해 설정된 .bash_profile것:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" #
Load RVM into a shell session *as a function*

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    export LD_LIBRARY_PATH

PATH=$PATH:/usr/local/bin
    export PATH

위 파일을 설정했음에도 불구하고 컴퓨터를 실행 하고 재부팅했는데도 ld_library_path여전히 올바른 경로를 얻지 못했습니다 !!envsudo ldconfig

내가 찾고 있는 도움이 무엇인지:

  • 환경 변수를 올바르게 설정하십시오

  • sqlplus 실행

같은 질문이 존재합니다수퍼유저, 그러나 거기에는 해결책이 제공되지 않습니다.

답변1

주석에서 볼 수 있듯이 라이브러리는 /usr/lib/oracle/12.1/client/lib/에 있지만 경로에는 /usr/lib/oracle/12.1/client/bin만 포함되어 있습니다... 왜 그렇게 할 수 있는지 알 수 있습니다. 도서관을 못 찾았어요?

/usr/lib/oracle/12.1/client/lib/ 디렉토리(.profile, .environment 또는 .bash_profile 또는 (모든 사용자에 대해 원하는 경우)) /etc/bash.bashrc에서 LD_LIBRARY_PATH를 확장할 수 있습니다. 파일) - sqlplus가 LD_LIBRARY_PATH를 관리하는지 모르겠습니다. 한번 시도해 보세요.

LD_LIBRARY_PATH가 무엇으로 설정되어 있는지 확인하려면 다음을 입력해야 합니다.

echo $LD_LIBRARY_PATH

(값을 읽으려면 $를 참고하세요!)

도움이 되었기를 바랍니다!

답변2

/usr/lib/oracle/12.1/client/lib/디렉터리 아래에는 다른 그룹에서 읽을 수 없는 일부 파일이 있습니다 .

cd /usr/lib/oracle/12.1/client/lib/
chmod +r *

그러면 내 환경에서 작동합니다.

관련 정보