在AIX上配置unixODBC - 驱动程序管理器无法打开lib

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在AIX上配置unixODBC - 驱动程序管理器无法打开lib相关的知识,希望对你有一定的参考价值。

我们在Aix 7.1上安装了unixODBC来连接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

之后,我们在libsqora.so上运行ldd命令来验证:

/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

但仍然有同样的错误。

知道发生了什么事吗?

问候。

答案

你应该有一个名为libodbcinst.so.1 whithin /usr/local/lib/libodbcinst.a的64位共享对象。我建议你这样做

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

以上是关于在AIX上配置unixODBC - 驱动程序管理器无法打开lib的主要内容,如果未能解决你的问题,请参考以下文章

AIX 6.1 链接器错误

FreeTDS 和 unixodbc 安装和配置

应用数仓ODBC前,这些问题你需要先了解一下

AIX Study之--AIX网卡配置管理(ent0en0et0)

AIX之设备管理总结篇

AIX IBM 服务器上的替代截断 cmd