Distcc est un programme conçu pour distribuer les tâches de compilation au travers d'un réseau de machines qui participent. Il est composé d'un serveur,
>=sys-apps/portage-2.0.46-r11Distcc-2.11 and on require >=sys-apps/portage-2.0.49-r6 >=sys-devel/gcc-config-1.3.1 sys-apps/shadowLorsque vous utilsez gtk dans vos drapeaux USE, distcc a les dépendances optionnelles suivantes (comme pour la version 2.8 et supérieures jusqu'à 2.11) >=x11-libs/gtk+-2.2.1
>=sys-apps/portage-2.0.49-r6 >=sys-devel/gcc-config-1.3.1 sys-apps/shadowDans cette version vous pouvez choisir entre une interface Gnome ou GTK pour le moniteur de supervision, ils ont les dépendances supplémentaires suivantes Pour GTK: >=x11-libs/gtk+-2.0.0 >=gnome-base/libglade-2.0.0 x11-libs/pangoPour Gnome: >=x11-libs/gtk+-2.0.0 >=gnome-base/libglade-2.0.0 x11-libs/pango >=gnome-base/libgnomeui-2.0.0.0 >=gnome-base/libgnome-2.0.0
L'installation de Distcc est vraiment simple. Simply set your USE flags and emerge distcc. Il y a néamoins quelques options que vous devriez connaître.
Distcc est fourni avec deux interfaces graphiques qui permettent la supervision des tâches que votre ordinateur envoi pour la compilation. Si vous utilisez Gnome alors il vous suffit d'ajouter 'gnome' à vos drapeaux USE. Cependant si vous n'utilisez pas gnome et que souhaitez néamoins avoir un outil de supervision alors vous pouvez ajouter 'gtk' à vos drapeaux USE.
Configurer distcc pour l'utiliser avec portage est une chose vraiment aisée. Sur chaque ordinateur où vous voulez utiliser distcc suivez simplement les étapes suivantes :
# emerge distcc # nano -w /etc/make.conf
Ensuite vous devez définir quels sont les serveurs que vous voulez utiliser. Pour ce faire vous pouvez utiliser la commande
192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.1/2 192.168.0.2 192.168.0.3/10 192.168.0.1:4000/2 192.168.0.2/1 192.168.0.3:3632/4 @192.168.0.1 @192.168.0.2:/usr/bin/distccd 192.168.0.3
ela peut sembler compliqué, mais dans la plupart des cas une variante des lignes 1 ou 2 suffira. Voici une explication de chaque lignes : la ligne 1 représente juste une liste de serveurs, délimités par un espace, qui utiliseront les options par défaut. La ligne 2 est une liste de serveurs qui indique le nombre maximum d'opérations, au moyen de l'option
Un exemple d'utilisation de la commande pour ajouter des serveurs (pour la ligne 1) :
# /usr/bin/distcc-config --set-hosts "192.168.0.1 192.168.0.2 192.168.0.3"
L'étape finale pour intégrer distcc à portage consiste en la réouverture de votre fichier
# nano -w /etc/make.conf MAKEOPTS=-jN
Ceci est dans dans certain cas bien plus simple que la mise en place avec Portage. Ce que vous devez faire c'est mettre à jour votre variable d'environnement
# export PATH="/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}"
Enfin, pour les compilations où vous utilisiez
La compilation croisée utilise un certain type d'architecture afin de générer des programmes pour un autre type d'architecture. Ceci peut être aussi simple que d'utiliser un Athlon (i686) pour générer des programmes pour un K6-2 (i586), ou d'utiliser une Sparc créant un programme pour un ppc.
J'aimerai être capable de prendre part à l'effort accompli par Gentoo pour la compilation croisée, mais je n'ai pas de machine d'un type différent des x86. Je peux créer des choses qui fonctionnent
Dans un futur proche j'espère acquérir une Sparc et y mettre une gentoo.
Ensuite, vous devrez démarrer votre nouvelle bécanne avec le LiveCD de Gentoo et suivre toutes les étapes pécédentes jusqu'à l'amorçage (bootstrapping). Procédez alors à la petite installation préliminaire, qui suit, sur votre nouvelle bécanne.
Ici nous ajoutons distcc aux FEATURES # nano -w /etc/make.confAjouter "distcc" à FEATURES Modifiez MAKEOPTS dans /etc/make.conf pour y affecter -jN (comme décrit précédemment)
Ensuite ajoutez l'utilisateur distcc à votre fichier
# echo "distcc:x:240:2:distccd:/dev/null:/bin/false" >>/etc/passwdN'oubliez pas le `>>'
Ensuite vous voudrez publier la commande suivante dans le chroot sur la nouvelle bécanne
# emerge --nodeps distcc
Maintenant configurez distcc lui-même...
# /usr/bin/distcc-config --install # /usr/bin/distcc-config --set-hosts "localhost host1 host2 host3 ..."
distcc devrait maintenant être configuré pour l'amorçage (bootstrap) ! Continuez avec le guide officiel d'installation, et n'oubliez pas de re-emerger distcc après l'
Lors de divers emerges, vous noterez qu'ils ne sont pas tous distribués (et en effet pas créés en parallèle). C'est la faute des développeurs des ebuilds de Mozilla et Xfree qui ont désactivé la possibilité de génération en parallèle car ils sont connus pour poser des problèmes. Ceci n'est pas necessairement un problème de distcc.
Cela ne veut pas dire que parfois distcc entrainera l'echec d'une compilation.
Avec un aussi long titre toute explication est presque hors de propos. Cependant, si vous envisagez d'utiliser distcc à travers des serveurs qui ont le
La solution requiert un peu de prévoyance de votre part; vous devez exécuter
Si vous avez différentes versions de GCC sur vos serveurs, il y aura probablement d'étranges problèmes. La solution est de s'assurer que tout les seveurs ont la même version de gcc.
Distcc est fourni avec deux outils de supervision. Une version qui fonctionne en mode texte est automatiquement installé, il s'appelle
L'autre moniteur est seulement installé si vous utilisez
Mise en garde pour utiliser ces programmes : si vous souhaitez superviser tout les emerges, vous devez lancer les moniteurs de supervision de la façon suivante :
# DISTCC_DIR=/path/to/distccdir distccmon-text NOU vous pouvez lancer le superviseur graphique ... # DISTCC_DIR=/path/to/distccdir distccmon-gnome
Le script perl est maintenu