unixODBC驱动程序管理器无法打开安装指定的库(unixodbc driver manager

2019-07-29 03:48发布

我使用的ArchLinux,我试图安装OpenEdge进步的驱动程序,所以我可以通过PHP访问它。 我已经安装了unixODBC数据包和驱动程序,但是当我测试通过isql或PHP的连接,我得到了同样的错误...

# isql -3 SUBS2A
[01000][unixODBC][Driver Manager]Can't open lib '/usr/dlc/odbc/lib/pgoe1023.so' : file not found
[ISQL]ERROR: Could not SQLConnect

该搞砸的事情是,“/usr/dlc/odbc/lib/pgoe1023.so”目前存在的,我甚至从“在/ usr / DLC”符号链接它。

以下是我的.ini文件...

ODBC.INI

[SUBS2A]
Description = ODBC Driver for Progress
Driver = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1

ODBCINST.INI(我删除了一些凭证的,因为它是不相关)

[ODBC-test]
Description = SUBS2A
Driver = SUBS2A
Server = 192.168.1.2
Port = 4000
APILevel=1
ConnectFunctions=YYN
CPTimeout=60
DriverODBCVer=03.60
FileUsage=0
SQLLevel=0
UsageCount=1
ArraySize=50
DefaultLongDataBuffLen=2048
DefaultIsolationLevel= READ COMMITTED
StaticCursorLongColBuffLen=4096

编辑添加的详细信息...

他们似乎都为32位,但我不知道我在做关于什么。

[root@Crux etc]# file /usr/bin/isql
/usr/bin/isql: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, BuildID[sha1]=0xd1bc16c119                          bb5cad6fea9e2a9abc1d06794a2775, stripped
[root@Crux etc]# file /usr/dlc/odbc/lib/pgoe1023.so
/usr/dlc/odbc/lib/pgoe1023.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

但看来它缺少一些依赖...

[root@Crux lib]# ldd pgoe1023.so
        linux-gate.so.1 =>  (0xb77c2000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7499000)
        librt.so.1 => /lib/librt.so.1 (0xb7490000)
        libpgicu23.so => not found
        libdl.so.2 => /lib/libdl.so.2 (0xb748b000)
        libstdc++-libc6.2-2.so.3 => not found
        libm.so.6 => /lib/libm.so.6 (0xb745e000)
        libc.so.6 => /lib/libc.so.6 (0xb72bc000)
        /lib/ld-linux.so.2 (0xb77c3000)

UPDATE

我复制“libpgicu23.so”到/ usr / lib和它解决了这个问题,但我仍然需要“的libstdc ++ - libc6.2-2.so.3”,但是当我抓住一个从互联网上它说:“错误而载入共享库:/usr/lib/libstdc++-libc6.2-2.so.3:ELF文件OS ABI无效”

当我问isql来“的libstdc ++左右。”,但即使它解决了通过LDD的问题,它造成这个错误。 - 我居然还送从“libc6.2-2.so.3的libstdc ++”一个符号链接

ISQL:符号查找错误:/usr/dlc/odbc/lib/pgoe1023.so:未定义的符号:__builtin_vec_new

我从来没有安装在* nix中框ODBC,但我们确实在Windows中同样的事情,它工作得很好。 任何输入赞赏。

Answer 1:

检查了unixODBC,驱动程序是相同的架构即运行:

which isql
file xxx (whatever came back from above)
file /usr/dlc/odbc/lib/pgoe1023.so

他们都应该是32位或64位。 一个64位的unixODBC不能使用32个驱动程序,反之亦然。

你不应该需要一个符号链接。

在/usr/dlc/odbc/lib/pgoe1023.so运行LDD,以确保所有相关性发现。

检查/usr/dlc/odbc/lib/pgoe1023.so是可执行的。

顺便说一句,我相信你身边有你的标签错误的方式为您的odbc.ini文件的内容应该是ODBCINST.INI,反之亦然。



Answer 2:

有一件事是检查该驱动程序对链接的的unixODBC库的次要版本号。 由于了unixODBC 2.3.1我改变了次要LIB数为2,以反映在64个平台在SQLLEN尺寸的变化。 但是,如果司机被LIB针对早期版本的链接将寻找一个libodbc.so.1和电流源提供libodbc.so.2。 简单的解决方案是提供从* .so.1到* .so.2一个符号链接。 同样也是libodbcinst.so的真实,所以检查为好。



文章来源: unixodbc driver manager cannot open specified library on install