Si vous avez plusieurs machines dont vous voulez maintenir à jour l'arborescence des sources, alors faire télécharger et recompiler à chacune d'entre elles les sources semble un gaspillage de ressources: espace disque, bande passante réseau, et cycles CPU. C'est en effet bien le cas, et la solution est d'avoir une machine qui fait la majeure partie du travail, pendant que le reste des machines montent ce travail par NFS. Cette section décrit une façon de le faire.
Premièrement, identifiez un ensemble de machines
qui va utiliser le même ensemble de binaires, que nous
appellerons un ensemble de compilation.
Chaque machine peut avoir un noyau personnalisé, mais
elles exécuteront les mêmes binaires utilisateur du
système de base. Dans cet ensemble de machine, choisissez
une machine qui sera la machine de
compilation. Cela sera la machine sur laquelle
le monde et le noyau seront compilés. Idéalement, cela
devrait être une machine rapide avec un CPU suffisamment
disponible pour exécuter la commande make
buildworld
et make buildkernel
. Vous voudrez également utiliser
une machine de test, qui testera
les mises à jour logicielles avant d'être utilisées
en production. Cela doit être une
machine que vous pouvez vous permettre d'avoir hors service
pour une longue période. Cela peut être la machine
de compilation, mais cela n'est pas obligatoire.
Toutes les machines de cet ensemble de compilation
doivent monter /usr/obj
et
/usr/src
à partir de la même
machine, et du même point de montage. Idéalement, ces
derniers sont sur deux disques différents sur la machine de
compilation, mais peuvent également être
montés par NFS sur cette machine. Si vous avez plusieurs
ensembles de compilation, /usr/src
devrait être sur une machine de compilation, et monté
par NFS sur les autres.
Finalement assurez-vous que
/etc/make.conf
et
/etc/src.conf
sur toutes les machines
de l'ensemble de compilation sont en accord avec la machine de
compilation. Cela signifie que la machine de compilation doit
compiler toutes les parties du système de base que toute
machine de l'ensemble de compilation va installer.
De plus, chaque machine de compilation devra avoir son nom de
noyau défini avec KERNCONF
dans
/etc/make.conf
, et la machine de
compilation devrait tous les lister dans
KERNCONF
, en listant son noyau en premier.
La machine de compilation doit avoir les fichiers de
configuration des noyaux de chaque machine dans
/usr/src/sys/arch/conf
si elle va compiler leur noyau.
Maintenant que tout est configuré, vous êtes
fin prêt pour tout compiler. Compilez le noyau et le monde
sur la machine de compilation comme décrit dans la Section 24.6.7.2, « Compiler le nouveau système », mais n'installez rien. La
compilation une fois terminée, allez sur la machine de
test, et installez le noyau que vous venez juste de compiler.
Si la machine monte /usr/src
et /usr/obj
via NFS, quand vous
redémarrez en mode mono-utilisateur vous devrez activer le
réseau et monter ces répertoires. La méthode
la plus simple est de démarrer en mode multi-utilisateur,
puis exécutez shutdown now
pour passer en
mode mono-utilisateur. Une fois à ce niveau, vous pouvez
installer le nouveau noyau et monde puis exécuter
mergemaster
comme vous le feriez
habituellement. Une fois cela effectué, redémarrez
pour retourner en mode multi-utilisateur pour cette
machine.
Après que vous soyez certain que tout fonctionne correctement sur la machine de test, utilisez la même procédure pour installer le nouvel ensemble logiciel sur chacune des autres machines de l'ensemble de compilation.
La même idée peut être utilisée
pour le catalogue des logiciels portés. La
première étape critique est de monter
/usr/ports
depuis la même machine vers
toutes les machines de l'ensemble de compilation. Vous
pouvez alors configurer correctement
/etc/make.conf
pour partager les
archives. Vous devrez faire pointer DISTDIR
sur un répertoire de partage commun dans lequel peut
écrire n'importe quel utilisateur utilisé pour
correspondance de l'utilisateur root
par vos
montages NFS. Chaque machine devrait faire pointer
WRKDIRPREFIX
sur une répertoire de
compilation local. Et enfin, si vous projetez de compiler et
distribuer des logiciels précompilés, vous
devriez fixer PACKAGES
sur un répertoire
similaire à DISTDIR
.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.