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_PATHyPATHpara incluir/usr/local/oracle_clientdesde/etc/profile,/etc/bashrc/,~/.bashrcy~/.bash_profile
¿Hay algo más que pueda probar? ¿Qué me estoy perdiendo?