Estoy usando ArchLinux y estoy tratando de instalar los controladores de progreso de OpenEdge para que pueda acceder a él a través de PHP. He instalado el paquete unixodbc y los conductores, pero cuando pruebo la conexión con isql o PHP, me sale el mismo error ...el administrador del controlador de unixodbc no puede abrir la biblioteca especificada en la instalación
# 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
Lo desordenado es que "/ usr/DLC/ODBC /lib/pgoe1023.so "actualmente existe, incluso lo vinculé a"/usr/dlc ".
Los siguientes son mis archivos ini ...
odbc.ini
[SUBS2A]
Description = ODBC Driver for Progress
Driver = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1
odbcinst.ini (He quitado algunas de las credenciales, ya que es irrelevante)
[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
EDITAR Agregar más información ...
Th Parece que ambos son de 32 bits, excepto que no tengo idea de lo que estoy haciendo con respecto a eso.
[[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
sí parece que le faltan algunas dependencias ...
[[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)
ACTUALIZACIÓN
copié "libpgicu23.so" a/usr/lib y se resolvió el problema, pero todavía necesito "libstdC++ - libc6.2-2.so.3", pero cuando cogí uno de internet decía "error al cargar bibliotecas compartidas: /usr/lib/libstdc++-libc6.2-2.so. 3: archivo ELF OS ABI no válido "
De hecho, incluso hice un enlace simbólico de "libstdC++ - libc6.2-2.so.3" a "libstdC++. So", pero a pesar de que resolvió el problema a través de ldd, causó este error cuando consulté isql ..
isql: symbol lookup error: /usr/dlc/odbc/lib/pgoe1023.so: undefined symbol: __builtin_vec_new
Nunca he instalado odbc en un cuadro * nix, pero hicimos lo mismo en un cuadro de Windows y funcionó bien. Cualquier entrada apreciada.
Bien He hecho una edición de mi pregunta con más información. Es raro porque en realidad tenía los archivos ini en reversa, sin embargo, cuando los cambio, el error empeora (dice que no puede encontrar DSN/Driver). Sin embargo, cuando ejecuto ldd, obtengo algunas dependencias faltantes, así que voy a tratar de solucionarlo, encontré algo que creo que podría ayudar aquí: http://remidian.com/progress/progress-openedge-database-101b -install-on-centos-rhel.html – PolishHurricane
Por lo general, no tendría sentido que tengas los archivos ini al revés, pero como unixODBC te permite especificar el controlador = XXX, donde XXX es una entrada en odbcint.ini O el controlador = path_to_shared_object saliste con la tuya. El hecho de que todo sea 32 bit os bueno sin embargo, eres la dependencia que te falta, no puedes hacer lo que hiciste y esperar que funcione. El ABI inválido sugiere que ha instalado un objeto compartido incompatible. No es tan simple como eso. – bohica