Permítanme empezar diciendo que no soy tradicionalmente un usuario de Mac. Todavía estoy tratando de hacer la transición desde Gentoo, donde compilar todo desde el código fuente era el estado por defecto, y el sistema no trataba activamente de evitar que hiciera cosas "peligrosas".
Tengo una máquina nueva con 10.11. He conseguido sqlplus
11.2.0.4, y puedo conectarme a un servidor remoto de Oracle con él. Ahora quiero usar DBD::Oracle
para conectar en un Perl script. He podido conseguir DBD::Oracle
para compilar/instalar pasando manualmente una versión a Makefile.pl
en lugar de utilizar CPAN (o, más concretamente, cpanm
):
perl Makefile.pl -V 11.2
make
make install
Sin embargo, cuando ejecuto el script utilizando el Perl por defecto (5.18.2 ubicado en /usr/bin/perl
), obtengo un error:
ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var or PATH (Windows) and or NLS settings, permissions, etc.
En caso de que el problema radique en el perl del sistema, he instalado perlbrew
y luego instalé 5.22.0 en ~/perl5
. Usando el perlbrew Perl, obtengo un error diferente:
dyld: lazy symbol binding failed: Symbol not found: _OCIAttrSet
Referenced from: /Users/jrittenh/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/darwin-2level/auto/DBD/Oracle/Oracle.bundle
Expected in: dynamic lookup
dyld: Symbol not found: _OCIAttrSet
Referenced from: /Users/jrittenh/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/darwin-2level/auto/DBD/Oracle/Oracle.bundle
Expected in: dynamic lookup
Trace/BPT trap: 5
Lo he intentado:
- bibliotecas Oracle de 32 y 64 bits
- bibliotecas de enlace simbólico de la versión específica (
libclntsh.dylib.11.1 => libclntsh.dylib
) - arreglar las rutas codificadas para
/ade
- crear una carpeta 'mesg' y hacerla escribible en
$ORACLE_HOME
- ajuste
ORACLE_HOME
,LD_LIBRARY_PATH
,DYLD_LIBRARY_PATH
yPATH
para incluir/usr/local/oracle_client
de/etc/profile
,/etc/bashrc/
,~/.bashrc
y~/.bash_profile
¿Hay algo más que pueda probar? ¿Qué me falta?