在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的主要内容,如果未能解决你的问题,请参考以下文章