Re-Compilation PHP - Debian Etch7

Kikoo à tous,

j’ai un petit soucis de compilation du module php sous une debian etch7…En fait tout fonctionne parfaitement mais je suis obligé de recompiler mon module php pour pouvoir faire fonctionner correctement la librairie jpgraph ( aditus.nu/jpgraph/index.php ). Il est impératif de recompiler pour prendre en compte la librairie GD et faire fonctionner jpgraph correctement (le fait d’installer la librairie GD et l’activer dans le php.ini ne suffit pas, il me renvoi un message disant qu’il ne faut pas utiliser la version “stand-alone” de la lib GD).

Ceci amène plusieures questions:

1: Est-il possible de recompiler sans modifier le reste de la config php, càd sans avoir à passer toutes les commandes nécessaires pour les autres modules. exple:
./configure --prefix=/usr/share
–datadir=/usr/share/php
–with-gd
make
make install

2: Comment déterminer précisément les chemins d’installation ? J’ai fait un dpkg -L php5 et il me retourne:
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/php5

C’est ma première compilation sous linux (il faut bien commencer ^^), et le serveur est en production je ne peux donc pas me permettre de faire n’importe quoi.

Merci pour votre aide.
@++

Tu as en effet la possibilité de lister les packets avec dpkg -L, mais je te propose une solution plus générale et non spécifique à debian :

(pour préciser la fonction locate, un # updatedb régulier n’est jamais de trop. ; ))
ou tout simplement :

Pour ce qui est de la compilation, je ne prendrais pas le risque de te dire quelque chose de faux, je m’en remet donc aux autres (;

Pour éviter la compilation, tu pourrais essayer le paquet libphp-jpgraph (php4) des dépôts etch ou bien aller piocher dans les dépôts Ubuntu.

Pour recompiler un paquet debian, la meilleurs solution est d’utiliser les sources debian:
va voir ici http://forum.debian-fr.org/viewtopic.php?f=8&t=4691 au chapitre 6.

Il y a aussi apt-build :
http://www.andesi.org/paquets:apt-build-optimisez-les-paquets-debian-pour-votre-systeme

Merci à tous pour ces réponses :wink:

J’ai avancé mais malheureusement je n’arrive toujours pas à mes fins…

Ripat > Effectivement ce serait bien mais il me faut une version php5 hors cette librairie n’est dispo que pour php4 (y compris chez ubuntu)

Fran.b > J’ai beau lire les instructions c’est du chinois pour moi c’est vraiment ma première compilation sous linux…

Dimm > J’ai essayé également en suivant les instructions fournit avec:
apt-build install php5
Le script démarre et ne s’arrête plus, visiblement il boucle…

Du coup j’ai retenté trés simplement avec ce script:

#! /bin/sh ./configure --prefix=/usr/share \ --datadir=/usr/share/php5 \ --libdir=/usr/share --includedir=/usr/include \ --bindir=/usr/bin \ --with-config-file-path=/etc \ --with-gd \ --enable-gd-imgstrttf \ --enable-gd-native-ttf \ --with-ttf-dir=/usr/lib \ --with-freetype-dir=/usr/lib \ --with-zlib-dir=/usr/lib \ --with-png-dir=/usr/lib \ --with-jpeg-dir=/usr/lib make make install

Qui se termine correctement cependant j’ai tjrs le même message d’erreur de jpgraph:

C’est désespérant ! Je précise que j’ai bien redémarré apache ^^

@++ Tyler

Le problème est que maintenant on ne connait plus rien sur ton système, tu as écrasé des fichiers de paquets donc le système n’est pas cohérent avec la base dpkg. Lors d’une mise à jour, il est possible que tes fichiers soient écrasés. Quand tu veux installer un logiciel via configure, make et make install, utilise «checkinstall» qui fabrique un paquet, te prévient des dégats potentiels et peut même être intégré dans les dépendances.

Sinon, charges les sources:

$ apt-get source php5

Puis charges les dépendances:

apt-get install fakeroot

apt-get build-dep php5

Edites le fichier debian/rules et rajoutes ton option

Fais

$ fakeroot dpkg-buildpackage -us -uc

et installes le(s) paquet(s) construits.

J’essaye tout ça dés ce soir, par contre je ne sais pas comment faire ceci (Gros boulet inside ^^):

@++ Tyler

les paquets se construisent au dessus de là ou tu fais le dpkg-buildpackage, et tu les installes ensuite avec dpkg -i …/paquet.deb