дано - Centos7
Суть проблемы: ошибка при запуске приложения которое использует OCILIB
error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory
как известно и описано много раз надо установить переменные окружения, а именно LD_LIBRARY_PATH, но вот засада - у меня все уже установлено!
ORACLE_HOME=/u02/app/oracle/product/11.2.0/client_2; export ORACLE_HOME
ORACLE_BASE=/u02/app/oracle; export ORACLE_BASE
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_SID=obase; export ORACLE_SID
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORACLE_DOC=$ORACLE_HOME/doc; export ORACLE_DOC
NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251; export NLS_LANG
LD_LIBRARY_PATH=/usr/local/lib:$ORACLE_HOME/bin:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
и я как бы не первый раз устанавливаю(собираю) это ПО, причем оно собирается нормально (видит OCILIB).
итак, что было проверено
- пути проверены, Oracle client по указанному пути есть, файлы есть
- переменные окружения установлены
- при пересборке OCILIB - она явно видит Oracle Client-а через установленные переменные окружения
- пробовал указывать путь до Oracle HOME явно при configure
- проверил нет ли еще одного файла libclntsh.so или libclntsh.so.11.1
- симлинк libclntsh.so верно указывает на libclntsh.so.11.1
- пробовал разные версии OCILIB ничего не меняется - при запуске ошибка
попробовал установить переменную
LD_RUN_PATH=/usr/local/lib:/u02/app/oracle/product/11.2.0/client_2/lib; export LD_RUN_PATH
это немного поменяло ситуацию, а именно приложение запускается и потом не может инициализировать OCI (!) те суть не меняется
проверяю
ldd snmp2ora
linux-vdso.so.1 => (0x00007ffff7981000)
librt.so.1 => /lib64/librt.so.1 (0x00007ffbcc06a000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffbcbe4d000)
libocilib.so.4 => /usr/local/lib/libocilib.so.4 (0x00007ffbcbbdb000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ffbcb8d3000)
libm.so.6 => /lib64/libm.so.6 (0x00007ffbcb5d0000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ffbcb3ba000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffbcafec000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffbcc28c000)
libclntsh.so.11.1 => /u02/app/oracle/product/11.2.0/client_2/lib/libclntsh.so.11.1 (0x00007ffbc8581000)
libnnz11.so => /u02/app/oracle/product/11.2.0/client_2/lib/libnnz11.so (0x00007ffbc81b4000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ffbc7faf000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007ffbc7d95000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007ffbc7b93000)
# ls /u02/app/oracle/product/11.2.0/client_2/lib/libclntsh.so.11.1
/u02/app/oracle/product/11.2.0/client_2/lib/libclntsh.so.11.1
вот реально не понимаю где тут проблема зарыта ? все же просто - всегда устанавливал LD_LIBRARY_PATH и все всегда работало без вопросов!