unixodbc驱动程序管理器无法在安装时打开指定的库 [英] unixodbc driver manager cannot open specified library on install

查看:570
本文介绍了unixodbc驱动程序管理器无法在安装时打开指定的库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用ArchLinux,并且正在尝试安装OpenEdge进度驱动程序,以便可以通过PHP对其进行访问.我已经安装了unixodbc软件包和驱动程序,但是当我通过isql或PHP测试连接时,出现了同样的错误...

I'm using ArchLinux and I am trying to install OpenEdge progress drivers so I can access it via PHP. I've installed the unixodbc package and the drivers, but when I test the connection via isql or PHP, I get the same error...

# 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"链接起来.

The messed up thing is that "/usr/dlc/odbc/lib/pgoe1023.so" presently exists, I even symlinked it from "/usr/dlc".

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

The following are my .ini files...

odbc.ini

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

odbcinst.ini(我删除了一些不相关的凭据)

odbcinst.ini (I removed some of the credentials as it is irrelevant)

[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

编辑添加更多信息...

EDIT Adding more info...

它们似乎都是32位的,除了我不知道我在做什么.

They appear to both be 32-bit, except I have no idea what I'm doing regarding that.

[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

似乎确实缺少一些依赖性...

It does appear that it's missing some dependencies...

[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)

更新

我将"libpgicu23.so"复制到/usr/lib并解决了该问题,但是我仍然需要"libstdc ++-libc6.2-2.so.3",但是当我从互联网上抓到一个文件时,它说加载共享库时出错:/usr/lib/libstdc++-libc6.2-2.so.3:ELF文件OS ABI无效"

I copied "libpgicu23.so" to /usr/lib and it solved that problem, but I still need "libstdc++-libc6.2-2.so.3", but when I grabbed one from the internet it said "error while loading shared libraries: /usr/lib/libstdc++-libc6.2-2.so.3: ELF file OS ABI invalid"

实际上,我什至从"libstdc ++-libc6.2-2.so.3"到"libstdc ++.so"建立了符号链接,但是即使它通过ldd解决了问题,但在查询isql时却导致了此错误.

I actually even made a symlink from "libstdc++-libc6.2-2.so.3" to "libstdc++.so", but even though it solved the problem via ldd, it caused this error when I queried isql..

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

isql: symbol lookup error: /usr/dlc/odbc/lib/pgoe1023.so: undefined symbol: __builtin_vec_new

我从来没有在* nix盒上安装过odbc,但是我们在Windows盒上做了同样的事情,并且运行良好.任何输入表示赞赏.

I've never installed odbc on a *nix box, but we did the same thing on a windows box and it worked fine. Any input appreciated.

推荐答案

检查unixODBC和您的驱动程序是否具有相同的体系结构,即运行:

Check unixODBC and your driver are the same architecture i.e., run:

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

它们都应为32位或64位. 64位unixODBC不能使用32位驱动程序,反之亦然.

They should both be 32 bit or 64 bit. A 64 bit unixODBC cannot use 32 bit drivers and vice versa.

您不需要该符号链接.

在/usr/dlc/odbc/lib/pgoe1023.so上运行ldd以确保找到所有依赖项.

Run ldd on /usr/dlc/odbc/lib/pgoe1023.so to ensure all dependencies are found.

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

Check /usr/dlc/odbc/lib/pgoe1023.so is executable.

顺便说一句,我认为您的标签名称错误,因为odbc.ini文件的内容应该是odbcinst.ini,反之亦然.

BTW, I presume you got your labels the wrong way around as your odbc.ini file contents should be the odbcinst.ini and vice versa.

这篇关于unixodbc驱动程序管理器无法在安装时打开指定的库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆