Vous n'êtes pas identifié(e).
Bonjour,
nous envisageons la possibilité d'héberger sur nos machines plusieurs versions de PostgreSQL.
A savoir la 8.3.9 et la 8.4.4 dans un premier temps sur du LINUX centos5.3
Nous utilisons les fichiers .spec fournis par la communauté car nous souhaiterions installer le moteur et toutes les dépendances liées à la plateforme et ceux non liées à la plateforme dans un répertoire de la forme:
/U01/pgsql/8.3.11/bin
/U01/pgsql/8.3.11/include
/U01/pgsql/8.3.11/lib
.....etc
Afin de réaliser cette opérations, nous nous sommes lancés dans la mise en oeuvre du fichier .spec fournit par la communauté en modifiant le moins de chose possible pour rester en conformité avec les normes.
Nous appelons la recompilation avec:
rpmbuild -ba postgresql-$VERSION.DGFIP.spec \
--define "_prefix /u01/pgsql/$VERSION" \
--define "_exec_prefix /usr" \
--define "_includedir /usr/include" \
--define "_bindir /u01/pgsql/$VERSION/bin" \
--define "_datadir /u03" > log.txt
Et le résultat est:
./configure --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu --target=i386-redhat-linux-gnu --program-prefix= --prefix=/u01/pgsql/8.3.11 --exec-prefix=/usr --bindir=/u01/pgsql/8.3.11/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/u03 --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/u01/pgsql/8.3.11/com --mandir=/usr/share/man --infodir=/usr/share/info --disable-rpath --with-perl --with-python --with-tcl --with-tclconfig=/usr/lib --with-openssl --with-pam --with-krb5 --with-gssapi --with-includes=/usr/include --with-libraries=/usr/lib --enable-nls --enable-thread-safety --with-ossp-uuid --with-libxml --with-libxslt --with-ldap --with-system-tzdata=/u03/zoneinfo --sysconfdir=/etc/sysconfig/pgsql --datadir=/u03 --with-docdir=/usr/share/doc
Nous pensions qu'en variabilisant exec_prefix avec /u01/pgsql/$VERSION, cela fonctionnerait. Malheureusement le fichier .spec des versions 8.3.11 et 8.4.4 de la communauté souffre d'un manque de variabilisation. Par conséquent, nous sommes obligés de laisser certaines parties comme exec_prefix /usr, de spécifier includedir /usr/include pour que la recompilation fonctionne...
Quelle méthode suggérez vous(avec des exemples svp) pour recompiler avec fichier spec sans modifier les fichiers spec de la communauté afin que tout moteur postgresql s'installe dans /u01/pgsql/version ?
Merci pour votre aide.
hfilliere
Hors ligne
Je n'ai pas connaissance que quelqu'un ait déjà fait ça avec les RPM PostgreSQL. Devrim a apparemment modifié les RPM des prochaines versions pour pouvoir installer plusieurs versions sur le même serveur. Il pourrait donc être bien de voir directement avec lui comment il a fait. Sinon, n'étant pas packager RPM moi-même, je ne saurais pas plus vous aider. Un forum sur le packaging RPM me semblerait plus cohérent.
Guillaume.
Hors ligne