LINUX.ORG.RU

Проблема с версиями .so


0

0

Проблемка такая:

есть приложение, pk_ld, хотящее определённую либу - libclntsh.so.9.0

При этом
root@5[lib]# ls -l libclntsh.so*
lrwxrwxrwx 1 root root 17 Янв 28 15:58 libclntsh.so -> libclntsh.so.10.1
-rwxrwx--- 1 oracle oinstall 19022963 Янв 28 11:06 libclntsh.so.10.1
lrwxrwxrwx 1 root root 17 Янв 29 14:18 libclntsh.so.9.0 -> libclntsh.so.10.1

libclntsh.so.9.0 прописана ссылкой, путь к либе в ld.so.conf указан, ldconfig выполнен.


И всё бес толку...

Подскажите плиз как связать приложение с этой либой.

logs:

root@5[proc]# ldd -r pk_ld
undefined symbol: OCIServerAttach (./pk_ld)
undefined symbol: OCIDescriptorFree (./pk_ld)
undefined symbol: OCITransCommit (./pk_ld)
undefined symbol: OCIServerDetach (./pk_ld)
undefined symbol: OCILobGetLength (./pk_ld)
undefined symbol: OCILobRead (./pk_ld)
undefined symbol: OCIStmtPrepare (./pk_ld)
undefined symbol: OCIDefineByPos (./pk_ld)
undefined symbol: OCIStmtFetch (./pk_ld)
undefined symbol: OCIHandleFree (./pk_ld)
undefined symbol: OCIStmtExecute (./pk_ld)
undefined symbol: OCIHandleAlloc (./pk_ld)
undefined symbol: OCITransRollback (./pk_ld)
undefined symbol: OCIInitialize (./pk_ld)
undefined symbol: xaoEnv (./pk_ld)
undefined symbol: OCIAttrSet (./pk_ld)
undefined symbol: xaoSvcCtx (./pk_ld)
undefined symbol: OCIErrorGet (./pk_ld)
undefined symbol: OCIEnvInit (./pk_ld)
undefined symbol: OCIAttrGet (./pk_ld)
undefined symbol: OCISessionBegin (./pk_ld)
undefined symbol: OCIDescriptorAlloc (./pk_ld)
undefined symbol: OCIBindByPos (./pk_ld)
undefined symbol: OCILobWrite (./pk_ld)
linux-gate.so.1 => (0x0086d000)
libm.so.6 => /lib/libm.so.6 (0x00910000)
libcrypto.so.0.9.7 => /CW/ND/thalerv2/prg/TSD/lib/libcrypto.so.0.9.7 (0x003f2000)
libcore.so => /CW/ND/thalerv2/prg/TSD/lib/libcore.so (0x00df1000)
libnattm.so => /CW/ND/thalerv2/prg/TSD/lib/libnattm.so (0x00c6e000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0093f000)
libssl.so.0.9.7 => /CW/ND/thalerv2/prg/TSD/lib/libssl.so.0.9.7 (0x007e7000)
libclntsh.so.9.0 => not found
libncurses.so.5 => /usr/lib/libncurses.so.5 (0x02349000)
libc.so.6 => /lib/libc.so.6 (0x00110000)
/lib/ld-linux.so.2 (0x007ad000)
libdl.so.2 => /lib/libdl.so.2 (0x00939000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x0076a000)
root@5[proc]#




Ответ на: комментарий от Sylvia

Спасибо, но мне пробовать ни к чему. Я когда вижу, что путь в ld.so.conf прописан, сразу успокаиваюсь и не пробую.

anonymous
()
Ответ на: комментарий от anonymous

LD_LIBRARY_PATH имеет бОльший приоритет чем файлы конфигурации
если каталоги где лежат библиотеки разные - установка переменной решит проблему.

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Приоритет-то больший, только если принять, что путь к каталогу с библиотекой в ld.so.conf прописан правильно, сделан ldconfig, а она всё равно не находится, запихивать тотже каталог в LD_LIBRARY_PATH пустая работа. Скорее самой soшке не хватает какой-либо библиотеки.

anonymous
()
Ответ на: комментарий от anonymous

собстенно вот:

root@6[lib]# ldd libclntsh.so.10.1
linux-gate.so.1 => (0x00da6000)
libnnz10.so => /oracle/app/oracle/oracle/product/10.2.0/client_1/lib/libnnz10.so (0x00110000)
libdl.so.2 => /lib/libdl.so.2 (0x005d5000)
libm.so.6 => /lib/libm.so.6 (0x00316000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00562000)
libnsl.so.1 => /lib/libnsl.so.1 (0x0033d000)
libc.so.6 => /lib/libc.so.6 (0x00b3b000)
/lib/ld-linux.so.2 (0x007ad000)
root@6[lib]#

значит далее, добавляем LD_LIBRARY_PATH

root@6[lib]# export LD_LIBRARY_PATH=/oracle/app/oracle/oracle/product/10.2.0/client_1/lib
root@6[lib]#
root@6[lib]#
root@6[lib]# ldconfig
ldconfig: /oracle/app/oracle/oracle/product/10.2.0/client_1/lib/libexpat.so.0 is not a symbolic link # эта же хрень появлялась и когда напрямую, libexpat.so.0 действительно не символьная ссылка

root@6[lib]#

root@6[lib]# ls -l libexpat.so*
-rwxr-xr-x 1 oracle oinstall 243272 Сен 2 2004 libexpat.so
-rwxr-xr-x 1 oracle oinstall 243272 Сен 2 2004 libexpat.so.0
-rwxr-xr-x 1 oracle oinstall 243272 Сен 2 2004 libexpat.so.0.5.0
root@6[lib]#


далее как ни старнно


root@6[proc]# ldd pk_ld
linux-gate.so.1 => (0x00110000)
libm.so.6 => /lib/libm.so.6 (0x00910000)
libcrypto.so.0.9.7 => /CW/ND/thalerv2/prg/TSD/lib/libcrypto.so.0.9.7 (0x0037d000)
libcore.so => /CW/ND/thalerv2/prg/TSD/lib/libcore.so (0x006df000)
libnattm.so => /CW/ND/thalerv2/prg/TSD/lib/libnattm.so (0x00111000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0093f000)
libssl.so.0.9.7 => /CW/ND/thalerv2/prg/TSD/lib/libssl.so.0.9.7 (0x00701000)
libclntsh.so.9.0 => /oracle/app/oracle/oracle/product/10.2.0/client_1/lib/libclntsh.so.9.0 (0x00956000)
libncurses.so.5 => /usr/lib/libncurses.so.5 (0x02349000)
libc.so.6 => /lib/libc.so.6 (0x007cb000)
/lib/ld-linux.so.2 (0x007ad000)
libdl.so.2 => /lib/libdl.so.2 (0x00939000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x0076a000)
libnnz10.so => /oracle/app/oracle/oracle/product/10.2.0/client_1/lib/libnnz10.so (0x0011b000)
libnsl.so.1 => /lib/libnsl.so.1 (0x0074a000)
root@6[proc]#

якобы сработало, но при потытке запуска pk_ld

pk_ld: error while loading shared libraries: libclntsh.so.9.0: cannot open shared object file: No such file or directory


(((

?




skelet
() автор топика
Ответ на: комментарий от skelet

Проблема скорее всего в том, что линкер резолвит название библиотеки не по имени файла, а по секции в хидере soшки. Можно конечно попытаться исправить ситуацию objdump'ом, но дело это на мой взгляд муторное и неблагодарное.

Если перекимпиляция проги с новой либой не вариант, можно утащить откуда-то ораклового клиента для 9-ки и повыдёргивать из него нужные либы. В крайнем случае - скачать отсюда: http://www.oracle.com/technology/software/products/oracle9i/index.html

anonymous
()
Ответ на: комментарий от anonymous

Либы с 9-го утаскивал - не помогает, ну в смысле помогает, но после запуска при попытке коннекта segmentaion fault.

Так что фиг с ним, придётся от 10-го клиента отказываться в пользу 9-го, и от RHEL5 в пользу RHEL3.

И спасибо за участие -)

skelet
() автор топика
Ответ на: комментарий от skelet

всегда думал что с rhel у оракла проблем нету. В инете не искал доки по запуску десятого оракла на пятом рхеле?

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.