Passage d'info sur la compile de ports

Le
TheFelin
Bonjour,

Depuis quelques temps je suis passé a compiler directement les ports
plutot que d'installer et télécharger sur leurs sites chaque logiciels.

Par ex: pour unreal (serveur irc) il me faut passer l'option
--enable-ssl --prefix=/monpath et je n'ai pas trouvé dans le doc comment
faire.

cd /usr/port/irc/unreal
ensuite je make
et make install

et comme je peu pas ./configure vu que le port l'est déjà.

Merci à tous.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
F. Senault
Le #691804

(Je suppose qu'il s'agit de FreeBSD ?)

Bonjour,

Depuis quelques temps je suis passé a compiler directement les ports
plutot que d'installer et télécharger sur leurs sites chaque logiciels.


C'est plus qu'une bonne chose.

Par ex: pour unreal (serveur irc) il me faut passer l'option
--enable-ssl --prefix=/monpath et je n'ai pas trouvé dans le doc comment
faire.


Tout se passe par variables d'environnement, mais il n'y a hélas pas de
méthode standard pour savoir quelles variables sont utilisables. Le
mieux est de jeter un coup d'oeil dans le Makefile que tu trouveras dans
le répertoire racine du port. Par exemple, dans ton cas, on trouve :

|.if defined(WITH_SSL)
|CONFIGURE_ARGS+= --enable-ssl
|USE_OPENSSL= yes
|.endif

Donc, tu dois définir la variable 'WITH_SSL' avant de compiler. Dans
(ba)sh, c'est WITH_SSL=1 make, avec (t)csh, env WITH_SSL=1 make.

Le plus souvent, les variables sont WITH_xxx ou WITHOUT_xxx, mais, de
temps en temps, on trouve d'autres choses...

Le prefix, au fait, est lui standard, et est mis dans PREFIX. C'est
généralement une mauvaise idée de le changer - l'organisation des BSD
est assez cohérente, et c'est agréable de retrouver une certaine
standardisation.

Une bonne solution, à mon sens, est aussi d'utiliser portupgrade et
portinstall (sysutils/portupgrade) qui permet de définir d'office ces
variables dans son fichier de conf (/usr/local/etc/pkgtools.conf), et de
faire les mises à jour automatiquement. Ca permet aussi de faire des
choses assez intéressantes, comme l'installation de patches maison
automatiquement (toujours en définissant des variables d'env).

Fred
--
I'd like to stay But every day
Everything pushes me farther away If you could show
Help me to know How it's supposed to be
Where did it go ? (Nine Inch Nails, Where Is Everybody)

TheFelin
Le #691803

(Je suppose qu'il s'agit de FreeBSD ?)


Bonjour,

Depuis quelques temps je suis passé a compiler directement les ports
plutot que d'installer et télécharger sur leurs sites chaque logiciels.



C'est plus qu'une bonne chose.


Par ex: pour unreal (serveur irc) il me faut passer l'option
--enable-ssl --prefix=/monpath et je n'ai pas trouvé dans le doc comment
faire.



Tout se passe par variables d'environnement, mais il n'y a hélas pas de
méthode standard pour savoir quelles variables sont utilisables. Le
mieux est de jeter un coup d'oeil dans le Makefile que tu trouveras dans
le répertoire racine du port. Par exemple, dans ton cas, on trouve :

|.if defined(WITH_SSL)
|CONFIGURE_ARGS+= --enable-ssl
|USE_OPENSSL= yes
|.endif

Donc, tu dois définir la variable 'WITH_SSL' avant de compiler. Dans
(ba)sh, c'est WITH_SSL=1 make, avec (t)csh, env WITH_SSL=1 make.

Le plus souvent, les variables sont WITH_xxx ou WITHOUT_xxx, mais, de
temps en temps, on trouve d'autres choses...

Le prefix, au fait, est lui standard, et est mis dans PREFIX. C'est
généralement une mauvaise idée de le changer - l'organisation des BSD
est assez cohérente, et c'est agréable de retrouver une certaine
standardisation.

Une bonne solution, à mon sens, est aussi d'utiliser portupgrade et
portinstall (sysutils/portupgrade) qui permet de définir d'office ces
variables dans son fichier de conf (/usr/local/etc/pkgtools.conf), et de
faire les mises à jour automatiquement. Ca permet aussi de faire des
choses assez intéressantes, comme l'installation de patches maison
automatiquement (toujours en définissant des variables d'env).

Fred
Effectivement j'ai modifié le Makefile directement pour avoir mes

paramétres perso, pour le prefix je ne change pas sous les ports mais
avec les logiciels téléchargés j'en avais souvent besoin pour rendre mon
system un peu plus cohérent.

Merci bien pour ces infos plus qu'utils.


Cyrille Szymanski
Le #691802
On 2004-07-24, TheFelin
Effectivement j'ai modifié le Makefile directement pour avoir mes
paramétres perso, pour le prefix je ne change pas sous les ports mais
avec les logiciels téléchargés j'en avais souvent besoin pour rendre mon
system un peu plus cohérent.


La méthode sous FreeBSD c'est pas de modifier le Makefile (un coup de
cvsup pour mettre l'arbre des ports à jour et les modifications sont
perdues). Tu peux au choix :

1. Définir la variable dans ton shell avant de lancer make comme il a
été suggéré.
2. Utiliser un paramètre de make, par exemple "make -DWITH_SSL" pour
définir WITH_SSL, ou "make WITH_SSL=yes" pour le définir à "YES".
3. Mettre "WITH_SSL= YES" dans /etc/make.conf

Les opérations 1 et 2 n'affectent le port qu'une seule fois.
L'opération 3 permet d'enregistrer ce paramètre mais elle est
aussi effective pour tous les autres ports.

Je te conseille la lecture du Handbook.

--
cns

espie
Le #691224
In article F. Senault
Donc, tu dois définir la variable 'WITH_SSL' avant de compiler. Dans
(ba)sh, c'est WITH_SSL=1 make, avec (t)csh, env WITH_SSL=1 make.

Le plus souvent, les variables sont WITH_xxx ou WITHOUT_xxx, mais, de
temps en temps, on trouve d'autres choses...


Sous OpenBSD, on a standardise tout ca en flavors. On n'a par contre
pas encore des noms completement standard pour les flavors en question,
et on ne `sait' pas les mettre automatiquement...

(c'est a l'etude, mais je n'ai pas de solution qui me satisfasse
entierement).

Mais faire 'make show=FLAVORS' dans un port permet de savoir ce qui
existe. Normalement, la DESCR du port explique les flavors
correspondantes...

Le prefix, au fait, est lui standard, et est mis dans PREFIX. C'est
généralement une mauvaise idée de le changer - l'organisation des BSD
est assez cohérente, et c'est agréable de retrouver une certaine
standardisation.


Vaste debat...
- quelques ports s'installent ailleurs que dans /usr/local. Les trucs web
assez souvent.
- NetBSD a un embryon de solution, entre leurs buildlink et leurs pkgviews.

En tout cas, c'est pas simple... Peut-etre qu'il faudrait une variable par
port indiquant ou il a ete installe, et s'en servir pour creer les suivants ?
Mais ca veut dire qu'on va alors creer des packages inutilisables ailleurs...
(de toutes facons, c'est presque toujours deja le cas pour les dependances
entre packages, alors...)

D'un certain point de vue, comme d'hab, ce genre de trucs ne marche pas tant
qu'il n'a pas ete teste.

Deja, essayer de compiler un arbre des ports sur un BSD en mettant LOCALBASE
ailleurs devrait occasionner quelques surprises...

Publicité
Poster une réponse
Anonyme