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
ePATH
per includere/usr/local/oracle_client
da/etc/profile
,/etc/bashrc/
,~/.bashrc
e~/.bash_profile
C'è qualcos'altro che posso provare? Cosa mi manca?