Je suis sous Solaris 10 64 bits, et j'ai Perl 5.10 et Postgresql 8.4.1 auto-compilés installés dans/usr/local, les deux 64 bits. Solaris est livré avec Postgresql 8.1.4 32 bits installé dans/usr, mais il ne fonctionne pas. Lorsque j'essaie d'installer DBD :: Pg, il rencontre un problème car la libpq.so qu'il trouve est celle de 32 bits dans/usr/lib plutôt que celle de 64 bits dans/usr/local/pgsql/lib.Comment puis-je compiler des liaisons Postgres 64 bits pour Perl sous Solaris?
# /usr/local/bin/cpanp -i DBD::Pg Installing DBD::Pg (2.15.1) ... ld: fatal: file /usr/lib/libpq.so: wrong ELF class: ELFCLASS32
Ma première pensée a été de supprimer les Postgres empaquetés, mais je l'ai lu advice against that. Je suis sûr que tout fonctionnerait si je recommençais avec Perl 32 bits, mais je préférerais m'en tenir à ce que j'ai.
J'ai remarqué dans la sortie CPAN que le fichier makefile définit LD_RUN_PATH =/usr/lib avant la liaison. Cela semble être quelque chose qui devrait changer, mais je ne sais pas comment le changer (puisque tout est automatisé par CPAN), et je ne sais pas quels autres effets secondaires un tel changement pourrait avoir. Il semble que le répertoire correct,/usr/local/pgsql/lib, ne soit pas du tout sur le chemin, donc peut-être que le rendre visible résoudrait le problème même sans cacher la version 32 bits, mais je ne sais pas comment faire ça non plus.
Comment puis-je compiler ce module dans l'environnement dont je dispose, ou comment puis-je modifier mon environnement pour que le module compile tel quel?
Réglage 'POSTGRES_HOME =/usr/local/pgsql 'a bien fonctionné. Pas besoin de supprimer Postgres 32 bits. Merci. –