¿Está El Capitan impidiéndome que el módulo Perl DBD :: Oracle funcione?

0

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 y PATH 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?

    
pregunta ND Geek 18.11.2015 - 20:18

1 respuesta

1

estoy usando   Mac OS X 10.11.3 El Capitán,   perlbrew 1.74 instalado con cpanm & Aplicación :: perlbrew / 0.74   Perl revision 5 version 22 subversion 1 (instalada a través de perlbrew)   DBI - 1.631   DBD :: Oracle VERSION: 1.74   Oracle InstantClient 11.2.0.4.0 instalado en / usr / local / lib / oracle / instantclient_11_2

Puedo confirmar que la única manera, hasta ahora, he podido hacer funcionar DBD :: Oracle deshabilitando SIP ( enlace ). Cualquier otra forma en la que haya intentado da como resultado el error "error: ERROR OCIEnvNlsCreate. Compruebe ORACLE_HOME (Linux) env var ...".

    
respondido por el Bill Mollett 17.02.2016 - 19:59

Lea otras preguntas en las etiquetas