Laissez-moi commencer par dire que je ne suis pas traditionnellement un utilisateur de Mac. J'essaie toujours de faire la transition depuis Gentoo, où la compilation de tout à partir des sources était l'état par défaut, et où le système n'essayait pas activement de m'empêcher de faire des choses "dangereuses".
J'ai une nouvelle machine fonctionnant sous la 10.11. J'ai obtenu sqlplus
11.2.0.4 en cours d'exécution, et je suis en mesure de me connecter à un serveur Oracle distant avec celui-ci. Je souhaite maintenant utiliser DBD::Oracle
pour se connecter dans un script Perl. J'ai pu obtenir DBD::Oracle
à compiler/installer en passant manuellement une version à Makefile.pl
plutôt que d'utiliser le CPAN (ou, plus précisément, cpanm
) :
perl Makefile.pl -V 11.2
make
make install
Cependant, lorsque j'exécute le script en utilisant le Perl par défaut (5.18.2 situé à l'adresse suivante /usr/bin/perl
), je reçois une erreur :
ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var or PATH (Windows) and or NLS settings, permissions, etc.
Au cas où le problème se situe au niveau du système perl, j'ai installé perlbrew
et a ensuite installé 5.22.0 dans ~/perl5
. En utilisant le perlbrew Perl, j'obtiens une erreur différente :
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
J'ai essayé :
- les bibliothèques Oracle 32 bits et 64 bits
- la mise en place de bibliothèques symétriques à partir de la version spécifique (
libclntsh.dylib.11.1 => libclntsh.dylib
) - correction des chemins codés en dur vers
/ade
- en créant un dossier 'mesg' et en le rendant accessible en écriture en
$ORACLE_HOME
- paramètre
ORACLE_HOME
,LD_LIBRARY_PATH
,DYLD_LIBRARY_PATH
etPATH
d'inclure/usr/local/oracle_client
de/etc/profile
,/etc/bashrc/
,~/.bashrc
et~/.bash_profile
Y a-t-il quelque chose d'autre que je puisse essayer ? Qu'est-ce qui me manque ?