El Capitan mi impedisce di ottenere il modulo Perl DBD :: Oracle funzionante?

0

Vorrei iniziare dicendo che non sono tradizionalmente un utente Mac. Sto ancora provando a passare da Gentoo, dove la compilazione di tutto da sorgente era lo stato predefinito, e il sistema non stava attivamente cercando di impedirmi di fare cose "pericolose".

Ho una nuova macchina che esegue 10.11. Ho ottenuto sqlplus 11.2.0.4 in esecuzione e sono in grado di connettermi a un server Oracle remoto. Ora voglio usare DBD::Oracle per connettermi in uno script Perl. Sono stato in grado di ottenere DBD::Oracle da compilare / installare passando manualmente una versione a Makefile.pl anziché utilizzare CPAN (o, più precisamente, cpanm ):

perl Makefile.pl -V 11.2
make
make install

Tuttavia, quando eseguo lo script utilizzando il Perl predefinito (5.18.2 situato in /usr/bin/perl ), viene visualizzato un errore:

ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var  or PATH (Windows) and or NLS settings, permissions, etc.

Se il problema riguarda il sistema perl, ho installato perlbrew e poi installato 5.22.0 in ~/perl5 . Usando il Perlbrew Perl, ottengo un errore diverso:

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

Ho provato:

  • librerie Oracle a 32 bit e 64 bit
  • librerie di collegamenti simbolici dalla versione specifica ( libclntsh.dylib.11.1 => libclntsh.dylib )
  • fissa i percorsi codificati in% a /ade
  • creazione di una cartella "mesg" e resa scrivibile in $ORACLE_HOME
  • impostazione ORACLE_HOME , LD_LIBRARY_PATH , DYLD_LIBRARY_PATH e PATH per includere /usr/local/oracle_client da /etc/profile , /etc/bashrc/ , ~/.bashrc e ~/.bash_profile

C'è qualcos'altro che posso provare? Cosa mi manca?

    
posta ND Geek 18.11.2015 - 20:18
fonte

1 risposta

1

Sto usando   Mac OS X 10.11.3 El Capitan,   perlbrew 1.74 installato con cpanm & App :: perlbrew / 0,74   Perl revision 5 version 22 subversion 1 (installato via perlbrew)   DBI - 1.631   DBD :: Oracle VERSION: 1.74   Oracle InstantClient 11.2.0.4.0 installato in / usr / local / lib / oracle / instantclient_11_2

Posso confermare che l'unico modo, finora, di riuscire a far funzionare DBD :: Oracle è disabilitando SIP ( link ). Qualsiasi altro modo in cui ho provato i risultati nell'errore "non riuscito: ERRORE OCIEnvNlsCreate. Controlla ORACLE_HOME (Linux) env var ...".

    
risposta data 17.02.2016 - 19:59
fonte

Leggi altre domande sui tag