Używam ArchLinux i próbuję zainstalować sterowniki postępu OpenEdge, dzięki czemu mogę uzyskać do niego dostęp przez PHP. Mam zainstalowany pakiet unixodbc i sterowników, ale kiedy testować połączenie przez isql lub PHP, mam ten sam błąd ...Menedżer sterownika unixodbc nie może otworzyć określonej biblioteki podczas instalacji
# 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
pomieszane rzeczą jest to, że „/ usr/DLC/ODBC /lib/pgoe1023.so "obecnie istnieje, nawet dowiązałem symbolicznie z"/usr/dlc ".
Poniżej są moje pliki ini ...
ODBC.INI
[SUBS2A]
Description = ODBC Driver for Progress
Driver = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1
ODBCINST.INI (usunąłem kilka mandatów, gdyż nie ma znaczenia)
[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
EDYCJA Dodawanie dodatkowych informacji ...
Th Wygląda na to, że oba są 32-bitowe, ale nie mam pojęcia, co robię w związku z tym.
[[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
wydaje się, że brakuje pewnych zależności ...
[[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
skopiowane "libpgicu23.so"/usr/lib i go rozwiązać ten problem, ale nadal potrzebuję "libstdC++ - libc6.2-2.so.3", ale kiedy złapałem jeden z Internetu, powiedział "błąd podczas ładowania bibliotek współdzielonych: /usr/lib/libstdc++-libc6.2-2.so. 3: Plik ELF OS ABI niepoprawny "
W rzeczywistości utworzyłem dowiązanie symboliczne od "libstdC++ - libc6.2-2.so.3" do "libstdC++. So", ale nawet jeśli rozwiązało problem za pośrednictwem ldd, spowodowało to ten błąd, gdy zapytałem isql ..
isql: symbol lookup error: /usr/dlc/odbc/lib/pgoe1023.so: undefined symbol: __builtin_vec_new
Nigdy nie zainstalowałem odbc na pudełku * nix, ale zrobiliśmy to samo na oknie Windows i działało dobrze. Wszelkie dane wejściowe zostały docenione.
Okay Zrobiłem edycję mojego pytania z dodatkowymi informacjami. To dziwaczne, ponieważ faktycznie miałem pliki ini na odwrocie, jednak kiedy je odwracam, błąd się pogarsza (mówi, że nie może znaleźć DSN/Driver). Jednak po uruchomieniu ldd dostaję brakujące zależności, więc spróbuję to naprawić, znalazłem coś, co może mi pomóc: http://remidian.com/progress/progress-openedge-database-101b -install-on-centos-rhel.html – PolishHurricane
Zazwyczaj nie ma sensu, że pliki ini były niewłaściwe, ale ponieważ unixODBC pozwala ci określić driver = XXX, gdzie XXX jest wpisem w odbcint.ini lub sterowniku = path_to_shared_object Ci się udało. Fakt, że wszystko jest w 32 bitach dobre, ale jesteś na brakującej zależności, nie możesz zrobić tego, co zrobiłeś i oczekiwać, że zadziała. Niepoprawna wartość ABI sugeruje, że zainstalowałeś niekompatybilny obiekt udostępniony. To nie jest takie proste. – bohica