Oracle
Just for me :
résolution du problème récurent du triplet Php, Perl, et surtout Oracle...
Pense bête pour BiBi concernant le problème PHP, Oracle, Perl:
-
php-oci8 en version 5.4.26 a une dépendance sur "libocci.so.12.1" et "libclntsh.so.12.1"
Ces librairies sont apportées par le rpm "oracle-instantclient12.1-basic".
Par contre, merci Oracle, une fois le rpm installé, il ne "monte" pas les librairies demandées (ldconfig -v): pour ce faire, il est necessaire de creer un fichier conf dans "/etc/ld.so.conf.d" qui contient le path de oracleclient c.a.d "/usr/lib/oracle/12.1/lib" et enfin de lancer un chti "ldconfig".
-
php-DBD-Oracle en version 1.62 a une dépendance sur ""libocci.so.11.1" : ce qui fait installer 2 oracleinstantclient (11 et 12) : moche !
Du coup, j'ai récupéré le tar sur Cpan en version 1.70 qui nécessite OracleInstantClient 12'.
Par contre, le rpm n'existe pas donc je l'ai fabriqué....
Tant qu'à faire j'ai mis oracleinstantclient en require et j'ai monté les librairies dans le post (en fait, j'ai créé un rpm qui s'occupe de tous ça).
Résultat :
Sur nos CentOS 6.5, on a perl-DBD-Oracle en 1.70 et php-oci8 en 5.4.26 avec toutes les dépendances nécessaires
Un aperçu du premier rpm "homemade" de perl-DBD-Oracle :
%define debug_package %{nil} %define client 12.1.0.1 Summary: DBD-Oracle module for perl Name: perl-DBD-Oracle Version: 1.70 Release: 1.Paulo License: GPL+ or Artistic Group: Development/Libraries Source0: DBD-Oracle-%{version}.tar.gz Source1: demo.mk Url: http://www.cpan.org BuildRoot: %{_tmppath}/perl-DBD-Oracle-buildroot/ BuildRequires: perl >= 0:5.6.1, perl(DBI) BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: oracle-instantclient12.1-devel #<jpc> Requires: reqOracle #</jpc> Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) # the version requires is not automatically picked up Requires: perl(DBI) >= 1.51 %description DBD-Oracle module for perl %pre ...
Pareil pour le rpm maison qui permet de faire fonctionner toute cette bouze :
Name: reqOracle Summary: Provide des librairie Oracle Version: 1.0 Release: 1.Paulo License: GPL-v3 URL: http://cornilyon.fr/pluxml/ Group: Applications/System BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Requires: oracle-instantclient12.1-basic Provides: libocci.so.12.1()(64bit) Provides: libclntsh.so.12.1()(64bit) %description Configuration pour Client oracle %prep %post echo '/usr/lib/oracle/12.1/client64/lib/' > /etc/ld.so.conf.d/oracle12.conf ldconfig %clean rm -rf $RPM_BUILD_ROOT %files %changelog * Wed Apr 09 2014 - MSN Lyon - JPC/PJH/DV - <Ma Messagerie> 1.0-1.Paulo - Version initiale
Voici, comment le tout s'articule :
- le client installe perl-DBD-Oracle
- ce paquet requiert et lance automagiquement "reqOracle"
- celui-ci installe et configure (ldconfig) "oracle-instantclient12.1-basic"
- ouf, c'est finit !
Je sais, le "echo" dans le poste n'est pas trés élégant :(