Настройте unixODBC в AIX - диспетчер драйверов не может открыть lib - PullRequest
0 голосов
/ 17 сентября 2018

Мы установили unixODBC в Aix 7.1 для соединения с Oracle.Когда мы попытались проверить соединение с помощью isql, мы получили следующую ошибку:

isql -v ORACLE
[01000][unixODBC][Driver Manager]Can't open lib  '/u01/app/oracle/product/11.2.0.4/client_1/lib/libsqora.so' : file not found
[ISQL]ERROR: Could not SQLConnect

После этого мы запускаем команду ldd на libsqora.so для проверки:

/u01/app/oracle/product/11.2.0.4/client_1/lib/libsqora.so needs:
     /usr/local/lib/libodbcinst.a(libodbcinst.so.1)
ar: 0707-109 Member name libodbcinst.so.1 does not exist.
dump: /tmp/tmpdir26149042/extract/libodbcinst.so.1: 0654-106 Cannot open the specified file.
     /u01/app/oracle/product/11.2.0.4/client_1/lib/libclntsh.so
     /usr/lib/libc.a(shr_64.o)
     /usr/lib/libpthreads.a(shr_xpg5_64.o)
     /usr/lib/libdl.a(shr_64.o)
     /usr/lib/libperfstat.a(shr_64.o)
     /usr/lib/libodm.a(shr_64.o)
     /usr/lib/libc.a(aio_64.o)
     /unix
     /usr/lib/libcrypt.a(shr_64.o)
     /usr/lib/libcfg.a(shr_64.o)
     /usr/lib/liblvm.a(shr_64.o)
     /usr/lib/libcorcfg.a(shr_64.o)
     /usr/lib/libsrc.a(shr_64.o)

Как видитеФайл libodbcinst.so.1 не найден.Мы просмотрели libodbcinst.a, используя приведенную ниже команду, и вместо libodbcinst.so.1 libodbcinst.so.2 находится внутри libodbcinst.a.

ar -X32 -t libodbcinst.a

Итак, мы попытались создать ссылку, используя:

ln -s libodbcinst.so.1 libodbcinst.so.2

Но все равно есть та же ошибка.

Есть идеи, что происходит?

С уважением.

1 Ответ

0 голосов
/ 18 сентября 2018

У вас должен быть 64-битный общий объект с именем libodbcinst.so.1 whithin /usr/local/lib/libodbcinst.a. Я предлагаю вам сделать это

mkdir -p /tmp/workplace
cd /tmp/workplace
cp -p /usr/local/lib/libodbcinst.a /usr/local/lib/libodbcinst.bak

ar -X64 x /usr/local/lib/libodbcinst.a libodbcinst.so.2
mv libodbcinst.so.2 libodbcinst.so.1
ar -X64 rcs /usr/local/lib/libodbcinst.a libodbcinst.so.1
...