Empezaré diciendo que tradicionalmente no soy un usuario de Mac. Todavía estoy tratando de hacer la transición desde Gentoo, donde compilar todo desde la fuente era el estado predeterminado, y el sistema no intentaba activamente evitar que hiciera cosas "peligrosas".
Tengo una máquina nueva que ejecuta 10.11. He ejecutado sqlplus
11.2.0.4 y puedo conectarme a un servidor de Oracle remoto con él. Ahora quiero usar DBD::Oracle
para conectar en una secuencia de comandos Perl. Pude obtener DBD::Oracle
para compilar / instalar pasando manualmente una versión a Makefile.pl
en lugar de usar CPAN (o, más específicamente, cpanm
):
perl Makefile.pl -V 11.2
make
make install
Sin embargo, cuando ejecuto el script con el Perl predeterminado (5.18.2 ubicado en /usr/bin/perl
), aparece 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 sea del sistema perl, instalé perlbrew
y luego instalé 5.22.0 en ~/perl5
. Al usar 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 de Oracle de 32 y 64 bits
- bibliotecas de enlaces simbólicos de la versión específica (
libclntsh.dylib.11.1 => libclntsh.dylib
) - corrigiendo rutas codificadas de forma fija a
/ade
- creando una carpeta 'mesg' y la hizo escribible en
$ORACLE_HOME
- configurando
ORACLE_HOME
,LD_LIBRARY_PATH
,DYLD_LIBRARY_PATH
yPATH
para incluir/usr/local/oracle_client
desde/etc/profile
,/etc/bashrc/
,~/.bashrc
y~/.bash_profile
¿Hay algo más que pueda probar? ¿Qué me estoy perdiendo?