Unixodbc-Treibermanager kann die angegebene Bibliothek bei der Installation nicht öffnen

8

Ich benutze ArchLinux und ich versuche, OpenEdge-Fortschrittstreiber zu installieren, damit ich über PHP darauf zugreifen kann. Ich habe das unixodbc-Paket und die Treiber installiert, aber wenn ich die Verbindung über isql oder PHP teste, bekomme ich den gleichen Fehler ...

%Vor%

Das Durcheinander ist, dass "/usr/dlc/odbc/lib/pgoe1023.so" gegenwärtig existiert, ich habe es sogar von "/ usr / dlc" symbolisiert.

Das Folgende sind meine .ini-Dateien ...

odbc.ini

%Vor%

odbcinst.ini (Ich habe einige der Anmeldeinformationen entfernt, da sie irrelevant sind)

%Vor%

BEARBEITEN Weitere Informationen hinzufügen ...

Sie scheinen beide 32-Bit zu sein, außer dass ich keine Ahnung habe, was ich diesbezüglich mache.

%Vor%

Es scheint, dass einige Abhängigkeiten fehlen ...

%Vor%

AKTUALISIEREN

Ich habe "libpgicu23.so" nach / usr / lib kopiert und es hat dieses Problem gelöst, aber ich brauche immer noch "libstdc ++ - libc6.2-2.so.3", aber als ich mir einen aus dem Internet schnappte, sagte es: " Fehler beim Laden gemeinsamer Bibliotheken: /usr/lib/libstdc++libc6.2-2.so.3: ELF-Datei OS ABI ungültig "

Ich habe sogar einen Symlink von "libstdc ++ - libc6.2-2.so.3" nach "libstdc ++. so" gemacht, aber obwohl das Problem über ldd gelöst wurde, hat es diesen Fehler verursacht, als ich isql abgefragt habe.

  

isql: Symbolsuchfehler: /usr/dlc/odbc/lib/pgoe1023.so: undefiniert   Symbol: __builtin_vec_new

Ich habe noch nie odbc auf einer * nix-Box installiert, aber wir haben dasselbe auf einer Windows-Box gemacht und es hat gut funktioniert. Jeder Eingang geschätzt.

    
PolishHurricane 25.04.2012, 15:07
quelle

2 Antworten

14

Überprüfen Sie, ob unixODBC und Ihr Treiber die gleiche Architektur haben, d. h. run:

%Vor%

Sie sollten beide 32 Bit oder 64 Bit sein. Ein 64-Bit-UnixODBC kann keine 32-Bit-Treiber verwenden und umgekehrt.

Sie sollten diesen symbolischen Link nicht brauchen.

Führen Sie ldd on /usr/dlc/odbc/lib/pgoe1023.so aus, um sicherzustellen, dass alle Abhängigkeiten gefunden werden.

Überprüfen Sie, ob /usr/dlc/odbc/lib/pgoe1023.so ausführbar ist.

Übrigens, ich nehme an, dass Sie Ihre Etiketten falsch herum gelesen haben, da der Inhalt Ihrer odbc.ini-Datei die odbcinst.ini sein sollte und umgekehrt.

    
bohica 25.04.2012, 15:52
quelle
2

Eine Sache, die überprüft werden muss, sind die Nebenversionsnummern der unixODBC-Bibliotheken, mit denen der Treiber verknüpft ist. Seit UnixODBC 2.3.1 habe ich die kleinere Bibliotheksnummer auf 2 geändert, um die Änderung der SQLLEN-Größe auf 64-Bit-Plattformen widerzuspiegeln. Wenn jedoch die Treiberbibliothek mit einer früheren Version verknüpft wurde, sucht sie nach einer libodbc.so.1, und aktuelle Quellen stellen libodbc.so.2 bereit. Eine einfache Lösung besteht darin, einen symbolischen Link von * .so.1 zu * .so.2 bereitzustellen. Das Gleiche gilt auch für libodbcinst.so. Überprüfen Sie das ebenfalls.

    
Nick Gorham 30.05.2012 09:27
quelle