Sqlplus: ошибка при загрузке разделяемых библиотек: libsqlplus.so: невозможно открыть файл общих объектов: нет такого файла или каталога

Пожалуйста, предложите решение для решения этой проблемы?? При подаче команды:

sqlplus /nolog

произошедшая ошибка:

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

Ответ 1

Минимальная конфигурация для правильного запуска sqlplus из оболочки - это установка ORACLE_HOME и LD_LIBRARY_PATH. Для удобства использования вы также можете установить PATH соответствующим образом.

Предполагая, что вы распаковали необходимые архивы в /opt/oracle/instantclient_11_1:

$ export ORACLE_HOME=/opt/oracle/instantclient_11_1
$ export LD_LIBRARY_PATH="$ORACLE_HOME"
$ export PATH="$ORACLE_HOME:$PATH"

$ sqlplus

SQL*Plus: Release 11.1.0.7.0 - Production on Wed Dec 31 14:06:06 2014
...

Ответ 2

Я решил эту ошибку, установив

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

да, не только $ORACLE_HOME/lib, но и $ORACLE_HOME.

Ответ 4

РАЗРЕШЕНИЯ: Я хочу подчеркнуть важность прав для "sqlplus".

  • Для любого "другого" пользователя UNIX, отличного от владельца/группы, чтобы иметь возможность запускать sqlplus и обращаться к базе данных ORACLE, необходимы разрешения на чтение/выполнение (rx) для этих 4-х каталогов:

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

  • Environment. Правильно установите их:

    а. ORACLE_HOME    (пример: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/)

    В. LD_LIBRARY_PATH (пример: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib)

    С. ORACLE_SID

    Д. PATH

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

Ответ 5

Я знаю, что это старый поток, но я снова это понял, когда Oracle 12c и LD_LIBRARY_PATH установлены правильно. Я использовал strace, чтобы узнать, что именно он искал и почему это не удалось:

 strace sqlplus /nolog

sqlplus пытается загрузить эту библиотеку из разных директорий, некоторые из них не существуют в моей установке. Затем он попробовал тот, который у меня уже был на LD_LIBRARY_PATH:

open ( "/oracle/product/12.1.0/db_1/lib/libsqlplus.so", O_RDONLY) = -1 EACCES (Разрешение отклонено)

Итак, в моем случае у lib было 740 разрешений, и поскольку мой пользователь не был владельцем или не имел назначенной группы оракула, я не мог его прочитать. Простой chmod +r помог.

Ответ 6

У вас уже должны быть все необходимые переменные в /etc/profile.d/oracle.sh. Убедитесь, что вы его нашли:

$ source /etc/profile.d/oracle.sh

PS: содержимое этого файла выглядит так:

ORACLE_HOME=/usr/lib/oracle/11.2/client64
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_HOME
export LD_LIBRARY_PATH
export PATH

Если у вас его нет, создайте его и отправьте.

Ответ 7

Вы можете попробовать использовать:

# echo "/usr/lib/oracle/12.2/client64/lib" > /etc/ld.so.conf.d/oracle.conf
# ldconfig

Эта проблема связана с тем, что клиент oracleinstant не настраивает разделяемую библиотеку.

Ответ 8

Это означает, что вы не задали переменные ORACLE_HOME и ORACLE_SID. Пожалуйста, настройте правильные рабочие $ORACLE_HOME и $ORACLE_SID, после чего выполните команду sqlplus/nolog. Он будет работать.

Ответ 9

Не могли бы вы проверить, указывает ли LD_LIBRARY_PATH на oracle libs

Ответ 10

Не забывайте

apt-get install libaio1 libaio-dev

или

yum install libaio