Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[PHP] est-ce que emerge va garder mes paramètres de compil ?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
opierre
n00b
n00b


Joined: 07 Apr 2004
Posts: 15

PostPosted: Fri Aug 13, 2004 6:02 pm    Post subject: [PHP] est-ce que emerge va garder mes paramètres de compil Reply with quote

Bonjour,

Je voulais installer php sans le mysql via emerge, mais comme cela (USE="-mysql") PHP n'est pas compilé avec le support sql, ce qui est gênant.

En fait je veux faire tourner mysql sur un autre serveur. Sans utiliser USE="-mysql" emerge m'installe mysql4 et ca je ne veux pas.

N'ayant pas trouvé de solution, j'ai compilé PHP à la main, à partir de /usr/portage/distfiles/php-4.3.8.tar.bz2

J'aimerais savoir si lors d'un emerge world par ex, PHP (une nouvelle version) va être compilée avec les mêmes options ?

Ou est-ce que j'ai raté une possibilité d'emerge ? (surement d'ailleurs)

Merci d'avance

PO
Back to top
View user's profile Send private message
Argian
l33t
l33t


Joined: 01 May 2004
Posts: 682
Location: Nîmes

PostPosted: Fri Aug 13, 2004 6:59 pm    Post subject: Reply with quote

Code:
man portage
ou alors https://forums.gentoo.org/search.php. Cette question a été posée hier :twisted:
[Edit] C'était même pas hier, c'était aujourd'hui :evil:
Back to top
View user's profile Send private message
opierre
n00b
n00b


Joined: 07 Apr 2004
Posts: 15

PostPosted: Fri Aug 13, 2004 7:10 pm    Post subject: Reply with quote

je n'ai pas trouvé ce à quoi tu fais référence, mise à part un post concernant la reprise des flages pour les compilations futures, ce qui n'est pas mon cas, puisque j'ai compilé à la main

qqun d'autre ?
Back to top
View user's profile Send private message
Argian
l33t
l33t


Joined: 01 May 2004
Posts: 682
Location: Nîmes

PostPosted: Fri Aug 13, 2004 8:53 pm    Post subject: Reply with quote

opierre wrote:
qqun d'autre ?
Perdu ! C'est encore moi :P
Désolé, je n'avais pas compris la question :oops: . D'ailleurs, je ne suis toujours pas certain d'avoir compris. Je vais quand même essayer
Tu voulais emerger php avec le support mysql sans pour autant installer mysql parce que le serveur mysql est sur un autre machine. Et comme tu n'y es pas arrivé, tu as compilé PHP "à la main". J'ai juste ?
opierre wrote:
J'aimerais savoir si lors d'un emerge world par ex, PHP (une nouvelle version) va être compilée avec les mêmes options ?
Bah non, si tu n'as pas fait d'emerge, PHP ne sera jamais mis à jour de cette façon. A moins que tu aies remplis les divers fichiers-et-répertoires-qui-vont-bien manuellement, il faudrait peut-être refaire l'installation à la sauce gentoo (avec emerge quoi)
opierre wrote:
Ou est-ce que j'ai raté une possibilité d'emerge ? (surement d'ailleurs)

Ben, tu aurais pu faire croire au système que mysql était installé avec un "emerge -i mysql" (i pour inject). De cette façon, l'emerge de PHP n'aurait pas essayé d'installer mysql. Il y a peut-être un autre moyen, mais je n'en vois pas.
Back to top
View user's profile Send private message
opierre
n00b
n00b


Joined: 07 Apr 2004
Posts: 15

PostPosted: Fri Aug 13, 2004 9:09 pm    Post subject: Reply with quote

je crois que tu as tout bon, je vais regarder du côté de emerge -i si je peux arriver au même résultat

merci du coup de main ;)
Back to top
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Fri Aug 13, 2004 10:24 pm    Post subject: Reply with quote

mais dans ce cas il est possible que portage veuille mettre mysql a jour lors d'une update de world, d'autant plus si tu utilises l'option -D Deep !
_________________
$ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join'
Back to top
View user's profile Send private message
SithLord
n00b
n00b


Joined: 03 Aug 2004
Posts: 13

PostPosted: Fri Aug 13, 2004 10:44 pm    Post subject: Reply with quote

Salut opierre,

Je crois avoir compris ce que tu veux. Tu tombes sur un des gros defauts de la Gentoo avec ton probleme.

Ton intention : Compiler PHP avec le support MySQL car tu vas l'utiliser MAIS le SERVICE MySQL, tu veux l'installer sur un autre serveur.

Ce que tu devras faire : USE="mysql" emerge -v php et il va te compiler PHP avec le support MySQL. Le truc c'est que pour avoir le support, il faut aussi compiler la libmysql.so (je lui donne volontairement un nom generique, je ne connais pas le nom exact et cela a peu d'importance pour l'explication). Cette lib est dans le package MySQL donc il devra egalement etre compile et prendront pas mal de temps de compilation.

Ce que auras au final : PHP installe ET MySQL au complet installe egalement, bien que le support MySQL de PHP n'aie REELEMENT besoin que de la libmysql. Il te faudra egalement sur le serveur de bases de donnees y compiler MySQL mais cette fois, il assurera le SERVICE base de donnees. Dans les 2 cas, MySQL est installe AU COMPLET.

Gentoo ne sait pas encore faire du decoupage logique DANS un package. Lorsqu'un package supporte XXXX, il n'a besoin QUE de la libXXXX.so, et l'ideal serait que Gentoo aie un mecanisme capable de ne compiler QUE cette lib dans le package satisfaisant la dependance.

A supposer que tu veuilles PHP avec le suppor PostgreSQL, MySQL, LDAP, mSQL, SQLite, GD, ODBC, etc..., tu devrais TOUS les compiler et installer AU COMPLET sur la machine. Ils n'occuperont que de la place disque.

J'admets que dans une logique habituelle (celle fournie par les distros binaires) c'est quelque peu perturbant et ca laisse un arriere gout de pas "propre". C'est vrai que j'aimerais me passer de la presence de tous ces outils pour n'utiliser que leur libXXXX.so qui est la SEULE reellement necessaire au fonctionnement de PHP.

C'est pour moi un des gros defauts de l'archi Gentoo (meme si je l'utilise et l'apprecie pour d'autres qualites), en plus du fait que Emerge est incapable de purger tous les fichiers d'une distro lors du unmerge (un equivalent du bon vieux "apt-get remove --purge" de Debian, il faut utiliser le script "cruft" cree par un de membres du forum Anglais (http://home.jesus.ox.ac.uk/~ecatmur/my-bin/cruft). Aussi efficace soit ce script, ca reste un emplatre sur une jambe de bois...

Gentoo a ses avantages et ses inconvenients, tout est une question de balance entre les besoins et les defauts.
Back to top
View user's profile Send private message
Oupsman
Veteran
Veteran


Joined: 19 Jul 2004
Posts: 1042

PostPosted: Fri Aug 13, 2004 11:08 pm    Post subject: Reply with quote

La documentation PHP wrote:
En PHP 4, l'option --with-mysql est activée par défaut. Pour désactiver ce comportement par défaut, vous devez utiliser l'option --without-mysql. De même, en PHP 4, si vous activez MySQL sans spécifier de chemin jusqu'au dossier d'installation MySQL, PHP va utiliser la bibliothèque cliente fournie dans la distribution PHP.


Ce genre de comportement n'est donc pas reproductible avec emerge ?

Dommage çà !

Le USE="mysql" permet de forcer le support de mysql. le USE="-mysql" de forcer la désactivation. Sans rien mettre on obtient quoi ?

Bien sur, en modifiant la variable USE dans le make.conf.

Juste mes 2 balles au problème.
_________________
--
L'idéal de nouveauté semble avoir remplacé l'idéal de progrès. C'est bien triste.

----
Unix philosophy: "Do one thing and do it well."
systemd: "Try to do everything and do it wrong."
Back to top
View user's profile Send private message
Argian
l33t
l33t


Joined: 01 May 2004
Posts: 682
Location: Nîmes

PostPosted: Fri Aug 13, 2004 11:32 pm    Post subject: Reply with quote

Oupsman wrote:
Le USE="mysql" permet de forcer le support de mysql. le USE="-mysql" de forcer la désactivation. Sans rien mettre on obtient quoi ?
Il ne me semble pas que le support mysql soit activé par défaut. Donc, si tu ne l'actives pas explicitement, alors, il ne l'est pas. Dans le cas de php, on se retrouve avec un --without-mysql (ça ne te dérange pas si j'empoche tes 2 balles ? Les fins de mois sont dures ces temps-ci :cry: )

[Edit] Pour info, le flag mysql se trouve dans /etc/make.profile/use.defaults. Le flag est donc activé automatiquement à l'installation de mysql. J'avais à moitié tort :?
Back to top
View user's profile Send private message
robinhood
Apprentice
Apprentice


Joined: 21 Jun 2004
Posts: 290

PostPosted: Fri Aug 13, 2004 11:52 pm    Post subject: Reply with quote

ya une solution, modifier l'ebuild à chaque mise a jour...
Back to top
View user's profile Send private message
Argian
l33t
l33t


Joined: 01 May 2004
Posts: 682
Location: Nîmes

PostPosted: Sat Aug 14, 2004 12:04 am    Post subject: Reply with quote

robinhood wrote:
ya une solution, modifier l'ebuild à chaque mise a jour...
8O
Tu pourrais préciser ? Je ne suis pas sûr de voir où tu veux en venir
Back to top
View user's profile Send private message
robinhood
Apprentice
Apprentice


Joined: 21 Jun 2004
Posts: 290

PostPosted: Sat Aug 14, 2004 12:59 am    Post subject: Reply with quote

grossierement, supprimer la dependence vers mysql (qui de toute façon est discutable), et modifier le comportement du ./configure pour lui passer --with-mysql quel que soit les use flag. c'est pas d'un interet enorme, et ça revient a compiler le tout à la main et faire un --inject, sauf que là tu est sûr d'installer le reste des dependences de php telles que definies dans portage, et de pas louper de mise a jour. A y reflechir, tout depend du comportement de portage vis a vis des dependences quand je fait un inject : est-ce qu'il considere que les dependences sont installé ou non ? a priori non, donc il sera capable de m'indiquer la presence d'une mise a jour de php, mais pas de m'avertir de l'existence d'une mise a jour d'une dependence de php.

contrairement à SithLord, je ne suis pas sur que php ait besoin d'une quelconque libmachinchose.so pour compile et tourner. c'est juste que l'on vas compiler en plus l'interface sql de php, et ensuite a nous d'indiquer a php ou chercher la libmachinchose.so ou ce dont il a besoin pour savoir ou trouver la base de données.
Back to top
View user's profile Send private message
Argian
l33t
l33t


Joined: 01 May 2004
Posts: 682
Location: Nîmes

PostPosted: Sat Aug 14, 2004 1:23 am    Post subject: Reply with quote

Donc, si je comprends bien, prendre l'ebuild, le copier dans $PORTDIR_OVERLAY, le modifier pour enlever la dépendance mysql et pour que php ait un --with-mysql pour le configure, et ce, pour chaque nouvelle version. Etant donné la façon dont est fait l'ebuild, ça suppose d'abord de copier php_sapi. Là, par contre, je ne sais pas si eclass est pris en compte dans l'overlay. Je suppose que oui, mais, ce serait à vérifier.
Enfin, de toute façon, c'est un peu lourd non ?
Je ne trouve pas spécialement que la solution que j'avais proposée soit terrible, mais un inject de mysql, c'est quand même plus simple à faire. Pour ce qui est d'éviter les mises à jour de mysql, package.mask fait très bien l'affaire. D'ailleurs, si quelqu'un a mieux à proposer, je suis preneur, ça me permettrait de me débarrasser d'un inject d'arts qui m'énerve depuis pas mal de temps :twisted:
robinhood wrote:
tout depend du comportement de portage vis a vis des dependences quand je fait un inject : est-ce qu'il considere que les dependences sont installé ou non ? a priori non, donc il sera capable de m'indiquer la presence d'une mise a jour de php, mais pas de m'avertir de l'existence d'une mise a jour d'une dependence de php.
Pas compris.
Un inject de quoi ? de php ? C'est pas vraiment le but. De mysql ? Ce n'est pas génant, on ne veut pas l'installer de toute façon.
L'inject ne concerne pas les dépendances d'un ebuild, juste l'ebuild lui-même. Donc, il ne considère pas que les dépendances sont installées.
Bon, après une quinzaine de relectures, j'ai l'impression que tu parles d'injecter php. A mon avis, c'est vraiment LA chose à ne pas faire, mais ce n'est que mon avis et je ne suis pas sûr que ce soit ce que tu voulais dire. Par conséquent, je m'arrête ici.

PS : Désolé opierre, on t'a un peu abimé ton sujet, mais on ne t'oublie pas :wink:

[Edit] Argh, il a fait au moins 2 édits pendant que je répondais :lol:
Code:
libmysqlclient.so.12 => /usr/lib/libmysqlclient.so.12 (0x40262000)
Donné par ldd. Je suppose que c'est celle dont parlaient Oupsman et La documentation PHP
Back to top
View user's profile Send private message
robinhood
Apprentice
Apprentice


Joined: 21 Jun 2004
Posts: 290

PostPosted: Sat Aug 14, 2004 1:48 am    Post subject: Reply with quote

Quote:
Posté le: Sam Aoû 14, 2004 2:23 am

je suis d'accord :lol:
Back to top
View user's profile Send private message
CryoGen
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1426
Location: Bamako - Mali - Afrique

PostPosted: Sat Aug 14, 2004 1:49 am    Post subject: Reply with quote

bon il est tard :D (ou tot ) et j'ai peut-etre pas compris le probleme mais pourquoi pas utilisé le fichier
/etc/portage/package.use

il permet de garder les option USE pour chaque ebuild... ca evite de modifier les ebuild a chaque update ou de passer par USE="..." a chaque emerge du paquet
_________________
- CryoGen` on #gentoofr@irc.freenode.net
- ~amd64 / KDE4
- I'm the bone of my sword...
Back to top
View user's profile Send private message
Argian
l33t
l33t


Joined: 01 May 2004
Posts: 682
Location: Nîmes

PostPosted: Sat Aug 14, 2004 2:08 am    Post subject: Reply with quote

CryoGen wrote:
bon il est tard :D (ou tot ) et j'ai peut-etre pas compris le probleme mais pourquoi pas utilisé le fichier
/etc/portage/package.use

il permet de garder les option USE pour chaque ebuild... ca evite de modifier les ebuild a chaque update ou de passer par USE="..." a chaque emerge du paquet
Oui, c'est l'erreur que j'avais faite dans mon premier post (J'ai encore honte d'ailleurs) :oops:
Back to top
View user's profile Send private message
opierre
n00b
n00b


Joined: 07 Apr 2004
Posts: 15

PostPosted: Sat Aug 14, 2004 8:22 am    Post subject: Reply with quote

en résumé, je dois compiler à la main a chaque sortie d'un nouveau package PHP

c'est pas bien grave, je le faisais sous redhat, je le ferai sous gentoo ;)

merci pour votre aide
Back to top
View user's profile Send private message
robinhood
Apprentice
Apprentice


Joined: 21 Jun 2004
Posts: 290

PostPosted: Sat Aug 14, 2004 9:20 am    Post subject: Reply with quote

non non tu fait :
Code:
emerge -i dev-db/mysql-4.0.20
USE="mysql" emerge php

en sachant que tu doit surveiller les sorties de tes emerge -up world, et lorsque tu vois une nouvelle version de mysql, tu refait ton emerge -i dev-db/mysql-laversion
Back to top
View user's profile Send private message
Argian
l33t
l33t


Joined: 01 May 2004
Posts: 682
Location: Nîmes

PostPosted: Sat Aug 14, 2004 10:17 am    Post subject: Reply with quote

robinhood wrote:
non non tu fait :
Code:
emerge -i dev-db/mysql-4.0.20
USE="mysql" emerge php

en sachant que tu doit surveiller les sorties de tes emerge -up world, et lorsque tu vois une nouvelle version de mysql, tu refait ton emerge -i dev-db/mysql-laversion
Voila, c'est ce que je voulais dire :D
De plus, pour USE, tu peux utiliser le fichier /etc/make.conf ou /etc/portage/package.use et si tu ne veux pas être trop embêté par les mises à jour de mysql, tu peux te servir du fichier /etc/portage/package.mask. Pour plus d'infos sur ces fichiers, man portage (Ah, je savais bien que je finirais par le sortir à bon escient ce man :P )
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum