linux - portable - sqlplus: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libsqlplus.so: kann keine freigegebene Objektdatei öffnen: Keine solche Datei oder Verzeichnis




portable oracle client (5)

Bitte schlagen Sie eine Lösung vor, um dieses Problem zu lösen. Beim Geben des Befehls sqlplus /nolog der Fehler aufgetreten

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory ..


Dies bedeutet, dass Sie keine ORACLE_HOME- und ORACLE_SID-Variablen festgelegt haben. Bitte stellen Sie die korrekte Funktionsweise von $ ORACLE_HOME und $ ORACLE_SID ein und führen Sie danach den Befehl sqlplus / nolog aus. Es wird funktionieren.


Könnten Sie überprüfen, ob LD_LIBRARY_PATH auf die Oracle-Bibliotheken verweist?


Ich habe diesen Fehler durch Einstellung behoben

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME

Ja, nicht nur $ ORACLE_HOME / lib, sondern auch $ ORACLE_HOME.


Berechtigungen: Ich möchte die Bedeutung von Berechtigungen für "sqlplus" betonen.

  1. Für jeden "anderen" UNIX-Benutzer, der nicht Eigentümer / Gruppe ist, um sqlplus ausführen und auf eine ORACLE-Datenbank zugreifen zu können, sind Lese- / Ausführungsberechtigungen (rx) für diese 4 Verzeichnisse erforderlich:

    $ ORACLE_HOME / bin, $ ORACLE_HOME / lib, $ ORACLE_HOME / oracore, $ ORACLE_HOME / sqlplus

  2. Umgebung. Stellen Sie diese richtig ein:

    A. ORACLE_HOME (Beispiel: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/ )

    B. LD_LIBRARY_PATH (Beispiel: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib )

    C. ORACLE_SID

    D. PFAD

     export PATH="$ORACLE_HOME/bin:$PATH"

Ich weiß, dass es ein alter Thread ist, aber ich habe es noch einmal mit Oracle 12c und LD_LIBRARY_PATH wurde richtig eingestellt. Ich habe strace verwendet, strace zu sehen, wonach genau es gesucht hat und warum es fehlgeschlagen ist:

 strace sqlplus /nolog

sqlplus versucht diese lib von verschiedenen Verzeichnissen zu laden, einige existierten in meiner Installation nicht. Dann versuchte es den, den ich bereits auf meinem LD_LIBRARY_PATH hatte:

Öffnen ("/ oracle / product / 12.1.0 / db_1 / lib / libsqlplus.so", O_RDONLY) = -1 EACCES (Berechtigung verweigert)

In meinem Fall hatte die Bibliothek 740 Berechtigungen, und da mein Benutzer kein Eigentümer war oder keine Orakelgruppe zugewiesen hatte, konnte ich ihn nicht lesen. So einfach chmod +r geholfen.





oracleclient