Listeros,
estoy arrancandome los pelos (los que queden) tratando de instalar el
fantabuloso cliente de Oracle denominado "Instant Client" en un Linux 64
bits (supongo que el nombre debe ser un chiste de muy mal gusto) y tras
varias horas de golpearme la cabeza contra todo lo que encuentre me rindo y
pido ayuda...
Vi que Oracle provee dos tipos de clientes, uno "Full" y un "Instant
Client". Dado que el contenido del "Full", todos y cada uno de los ~1.7 gb,
está relleno con cosas que ni me interesan, opté por el "Instant" (me queda
para luego probar el otro, pero para el caso creo que es lo mismo).
La "instalación" del Instant Client consiste en descomprimir un par de zips
en /opt/oracle y tirar un ldconfig. Hasta allí todo correcto.
Es cuando instalo la gema "ruby-oci8" que me encuentro con un error que no
termino de comprender, copio y recorto un poco:
# gem install ruby-oci8
> Building native extensions. This could take a while...
> ERROR: Error installing ruby-oci8:
> ERROR: Failed to build gem native extension.
> /opt/ruby/bin/ruby extconf.rb
> checking for load library path...
> LD_LIBRARY_PATH is not set.
> *checking ld.so.conf... yes*
> no
> */opt/oracle/instantclient_11_1/libclntsh.so.11.1 looks like an instant
> client.*
> checking for cc... ok
> checking for gcc... yes
> checking for LP64... no
> checking for ruby header... ok
> *checking for OCIInitialize() in oci.h... no*
> *** extconf.rb failed ***
> Could not create Makefile due to some reason, probably lack of
> necessary libraries and/or headers. Check the mkmf.log file for more
> details. You may need configuration options.
>
> Provided configuration options:
> --with-opt-dir --without-opt-dir --with-opt-include
> --without-opt-include=${opt-dir}/include --with-opt-lib
> --without-opt-lib=${opt-dir}/lib --with-make-prog
> --without-make-prog --srcdir=. --curdir
> --ruby=/opt/ruby/bin/ruby --with-instant-client
> --without-instant-client
> ./oraconf.rb:1163:in `initialize': RuntimeError (RuntimeError)
> [...]
> ---------------------------------------------------
> error messages:
> Could not compile with Oracle instant client.
> You may need to set a environment variable:
> LD_LIBRARY_PATH=/opt/oracle/instantclient_11_1
> export LD_LIBRARY_PATH
> ---------------------------------------------------
> See:
> * http://ruby-oci8.rubyforge.org/en/HowToInstall.html
> * http://ruby-oci8.rubyforge.org/en/ReportInstallProblem.html
> Gem files will remain installed in
> /opt/ruby/lib/ruby/gems/1.8/gems/ruby-oci8-2.0.2 for inspection.
> Results logged to
> /opt/ruby/lib/ruby/gems/1.8/gems/ruby-oci8-2.0.2/ext/oci8/gem_make.out
>
De esto interpreto:
- encontró el instant client via ld.so.conf (LD_LIBRARY_PATH es
irrelevante, ya probé setearla), y lo reconoció como que es la versión
correcta
- hay un "no" cruzado por ahí, justo antes de "... looks like an
instant client", pero siguiendo el código de oraconfig.rb
deduzco que SÍ lo
encontró (el "no" quedó colgado de otro lado)
- no puede encontrar oci.h (o interpretar su contenido; lo que busca
está)
- forma parte de uno de los zips que provee Oracle, el de SDK, y está
en /opt/oracle/instantclient_11_1/sdk/include (donde intuyo debe ir según
varios instructivos que googleé, aunque probé moverlo a varios lados)
¿a alguien se le ocurre alguna punta?
PD: no puedo evitar imaginarme una carcajada sarcástica de Larry Ellison...
Triste, esta gente compró MySQL... perdón por la longitud
nacho
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar