linux - instant - oracle client basic
libaio.so.1: no se puede abrir el archivo de objeto compartido (6)
Aquí en un openSuse 12.3 la solución fue instalar la versión de 32 bits de libaio además. Oracle parece necesitar esto ahora, aunque en 12.1 se ejecuta sin la versión de 32 bits.
Tengo un programa de prueba simple que cuando corro obtengo:
./hello: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
Lo enlace así:
$(CC) $(CCFLAGS) -o hello hello.o -L../ocilib-3.9.3/src/.libs -L../instantclient_11_2 -locilib
Mi LD_LIBRARY_PATH contiene esto:
LD_LIBRARY_PATH=../ocilib-3.9.3/src/.libs:../instantclient_11_2:/usr/lib
/ usr / lib se ve así:
Linux$ ls -l /usr/lib/libaio*
lrwxrwxrwx 1 root root 15 Nov 5 2008 /usr/lib/libaio.so.1 -> libaio.so.1.0.1
-rwxr-xr-x 1 root root 2632 Sep 16 2005 /usr/lib/libaio.so.1.0.0
-rwxr-xr-x 1 root root 2628 Sep 16 2005 /usr/lib/libaio.so.1.0.1
Salida de ldd hola:
libocilib.so.3 => ../ocilib-3.9.3/src/.libs/libocilib.so.3 (0x0000002a95558000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000003811200000)
libclntsh.so.11.1 => ../instantclient_11_2/libclntsh.so.11.1 (0x0000002a956c4000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
libnnz11.so => ../instantclient_11_2/libnnz11.so (0x0000002a97f56000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003811500000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000003811700000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000003811b00000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003819000000)
libaio.so.1 => not found
Espero que me esté perdiendo algo simple aquí. El paquete de Oracle instantclient parece requerir libaio, pero parece que ya está instalado, entonces, ¿cuál es el problema?
Escriba lo siguiente:
sudo apt-get install libaio1 libaio-dev
o
sudo yum install libaio
Estoy teniendo un problema similar.
encontré
conda instalar pyodbc
¡Está Mal!
cuando uso
apt-get install python-pyodbc
Resolví este problema.
Parece una discrepancia de 32/64 bits. El resultado de ldd muestra que se eligen principalmente bibliotecas de /lib64
. Eso indicaría que ha instalado una versión de 64 bits del cliente Oracle y ha creado un ejecutable de 64 bits. Pero libaio.so
es probablemente una biblioteca de 32 bits y no se puede usar para su aplicación.
Entonces, o necesitas una versión de 64 bits de libaio o creas una versión de 32 bits de tu aplicación.
Tenía que hacer lo siguiente (en Kubuntu 16.04.3):
- Instale las bibliotecas:
sudo apt-get install libaio1 libaio-dev
- Encuentre dónde está instalada la biblioteca:
sudo find / -iname ''libaio.a'' -type f
-> dio como resultado/usr/lib/x86_64-linux-gnu/libaio.a
- Agregar resultado a la variable de entorno:
export LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib:/usr/lib/x86_64-linux-gnu"
Tuve el mismo problema, y resultó que no había instalado la biblioteca.
este enlace fue súper útil.