我正在使用ArchLinux,我正嘗試安裝OpenEdge進度驅動程序,以便通過PHP訪問它。我已經安裝了unixODBC數據包和驅動程序,但是當我測試通過isql或PHP的連接,我得到了同樣的錯誤......unixodbc驅動程序管理器無法在安裝時打開指定的庫
# 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
編輯添加更多信息...
Th ey看起來都是32位的,除了我不知道我在做什麼。
[[email protected] 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
[[email protected] 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
但看來它缺少一些依賴...
[[email protected] 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無效「
我實際上甚至提出了從「libstdC++ - libc6.2-2.so.3」到「libstdC++。so」的符號鏈接,但即使它通過ldd解決了問題,但在查詢isql時卻導致了此錯誤..
isql: symbol lookup error: /usr/dlc/odbc/lib/pgoe1023.so: undefined symbol: __builtin_vec_new
我從來沒有在* nix盒子上安裝過odbc,但我們在Windows盒子上做了同樣的事情,它工作的很好。任何輸入讚賞。
好吧,我用更多的信息編輯了我的問題。 這很奇怪,因爲我實際上確實有ini文件反向,但是當我反轉它們時,錯誤變得更糟(稱它找不到DSN/Driver)。然而,當我運行ldd時,我得到了一些缺失的依賴關係,所以我將嘗試解決這個問題,我發現了一些我認爲可能有用的地方:http://remidian.com/progress/progress-openedge-database-101b -install-on-centos-rhel.html – PolishHurricane 2012-04-25 16:25:27
通常,你沒有任何意義,你有ini文件錯誤的方式,但作爲unixODBC允許您指定驅動程序= XXX其中XXX是odbcint.ini中的條目或驅動程序= path_to_shared_object你逃脫了。事實上,一切都是32位操作系統,不過,你是你的缺失依賴,你不能做你所做的,並期望它的工作。 ABI無效表明您已安裝不兼容的共享對象。這不是那麼簡單。 – bohica 2012-04-25 20:28:28