Gentoo Logo

Avertissement : Ce manuel a été remplacé par une version plus récente et n'est plus maintenu.


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


3. Portage et ses fonctionnalités

Table des matières :

3.a. Les caractéristiques de Portage

Portage offre un ensemble de fonctionnalités qui vous aident à mieux utiliser Gentoo. Certaines fonctionnalités sont basées sur des outils tiers qui permettent d'améliorer les performances, la fiabilité, la sécurité, etc.

Pour activer ou désactiver certaines fonctionnalités, vous devez modifier la variable FEATURES dans le fichier /etc/make.conf. Souvent, vous devrez aussi installer l'outil requis pour utiliser la fonctionnalité souhaitée.

Toutes les fonctionnalités disponibles ne sont pas reprises ici. Veuillez lire la page man de make.conf pour en savoir plus.

Exemple de code 1.1 : Lire la page man de make.conf

$ man make.conf

Pour connaître les fonctionnalités qui sont actives sur votre système, utilisez la commande emerge info et regardez le contenu de la variable « FEATURES ».

Exemple de code 1.2 : Afficher les fonctionnalités actives

$ emerge info | grep FEATURES

3.b. Compilation distribuée

Utiliser distcc

distcc est un programme qui permet de distribuer des compilations sur plusieurs machines, pas nécessairement identiques, d'un réseau. Le client distcc envoie toutes les données nécessaires aux serveurs distcc (qui exécutent distccd) disponibles afin qu'ils puissent compiler des parties du code source au profit du client. Le résultat est une compilation plus rapide.

Vous trouverez une description plus élaborée de distcc (et des informations sur la manière de le faire fonctionner avec Gentoo) dans notre Documentation Gentoo pour distcc.

Installation de distcc

Distcc est fourni avec une interface graphique qui permet de suivre les tâches de compilation que votre ordinateur envoie. Si vous utilisez Gnome, ajoutez « gnome » à votre variable USE. Mais si vous n'utilisez pas Gnome et souhaitez tout de même avoir une interface graphique, vous pouvez ajouter « gtk » à votre variable USE.

Exemple de code 2.1 : Installer distcc

# emerge distcc

Activer le support distcc pour Portage

Ajoutez le mot-clé distcc à la variable FEATURES du fichier /etc/make.conf. Ensuite, modifiez la variable MAKEOPTS pour y ajouter -jXX est le nombre de processeurs qui exécutent distccd (l'hôte actuel inclus) plus un. Cette valeur donne en général les meilleurs résultats, mais vous pouvez en essayer d'autres.

Ensuite, exécutez distcc-config et entrez la liste des serveurs distcc disponibles. Pour donner un exemple simple, nous supposerons que les serveurs distcc disponibles sont 192.168.1.102 (l'hôte actuel), 192.168.1.103 et 192.168.1.104 (deux hôtes « distants ») :

Exemple de code 2.2 : Configurer distcc pour qu'il utilise trois serveurs distcc

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Bien entendu, n'oubliez pas de lancer le démon distccd :

Exemple de code 2.3 : Lancer le démon distccd

# rc-update add distccd default
# /etc/init.d/distccd start

3.c. Utiliser un cache pour la compilation

À propos de ccache

ccache est un cache rapide pour compilateur. Lorsque vous compilez un programme, il mettra les résultats intermédiaires en cache afin que, s'il vous arrive de recompiler le même programme, le temps de compilation soit largement réduit. Avec des applications communes, cela peut entraîner des compilations 5 à 10 fois plus rapides.

Si vous êtes intéressé par le fonctionnement interne de ccache, veuillez visiter le site de ccache.

Installation de ccache

Utilisez la commande emerge ccache pour installer ccache :

Exemple de code 3.1 : Installer ccache

# emerge ccache

Activer le support ccache pour Portage

Ajoutez le mot-clé ccache à la variable FEATURES du fichier /etc/make.conf. Ensuite, ajoutez la variable CCACHE_SIZE qui définit la taille par défaut du cache utilisé par ccache. Une valeur de 2 Go est recommandée.

Exemple de code 3.2 : Editer CCACHE_SIZE dans /etc/make.conf

CCACHE_SIZE="2G"

Pour vérifier que ccache fonctionne, vous pouvez exécuter ccache -s pour afficher les statistiques de ccache :

Exemple de code 3.3 : Afficher les statistiques de ccache

# ccache -s

Utilisation de ccache en dehors de Portage

Si vous souhaitez utiliser ccache pour les compilations en dehors de celles de Portage, vous pouvez ajouter /usr/lib/ccache/bin au début de votre variable PATH (ou tout au moins avant /usr/bin). Pour cela, éditez le fichier /etc/env.d/00basic :

Exemple de code 3.4 : Modifier le fichier /etc/env.d/00basic

PATH="/usr/local/bin:/opt/bin:/usr/lib/ccache/bin"

3.d. Paquets binaires

Créer des paquets binaires

Nous avons déjà parlé de l'utilisation de paquets précompilés, mais comment crée-t-on son propre paquet précompilé ?

Si le paquet est déjà installé, vous pouvez utiliser la commande quickpkg. Si ce n'est pas le cas, utilisez les options --buildpkg ou --buildpkgonly avec la commande emerge. La deuxième option prépare un paquet binaire sans l'installer sur votre machine.

Si vous souhaitez que Portage construise par défaut des paquets binaires pour tous les paquets que vous installez sur votre système, vous pouvez mettre le mot-clé builpkg dans la variable FEATURES dans le fichier /etc/make.conf.

Vous trouverez plus de détails à propos de la création de paquets binaires dans la documentation de catalyst (en anglais) : Catalyst Reference Manual et Catalyst Howto.

Installer des paquets précompilés

Bien que Gentoo ne fournisse pas de système centralisé de distribution de paquets binaires, rien ne vous empêche d'en créer un. Vous pourriez très bien stocker tous vos paquets binaires sur un serveur et utiliser celui-ci pour mettre plusieurs machines à jour. Pour utiliser un tel serveur, vous devez le définir dans la variable PORTAGE_BINHOST. Si vous avez stocké vos paquets sur un serveur ftp ftp://buildhost/gentoo, utilisez :

Exemple de code 4.1 : Définir PORTAGE_BINHOST dans /etc/make.conf

PORTAGE_BINHOST="ftp://buildhost/gentoo"

Quand vous voulez utliser un paquet binaire pour installer une application, spécifiez l'option --getbinpkg en plus de --usepkg avec la commande emerge. La première option indique à Portage de télécharger le paquet binaire depuis le serveur que vous avez défini plus tôt et la seconde indique d'utiliser le même paquet binaire plutôt que de compiler l'application.

Par exemple, pour installer gnumeric à partir de paquets binaires précompilés :

Exemple de code 4.2 : Installer gnumeric en utilisant un paquet précompilé

# emerge --usepkg --getbinpkg gnumeric

La page man de emerge décrit l'utilisation des paquets précompilés plus en détail.

Exemple de code 4.3 : Lire la page man de emerge

$ man emerge

[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Voir tout

Dernière mise à jour le 9 novembre 2004

Cette traduction n'est plus maintenue

Résumé : Ce chapitre décrit les différentes fonctionnalités qui permettent d'améliorer l'utilisation de Portage et notamment comment réduire les temps de compilation.

Sven Vermeulen
Auteur

Daniel Robbins
Auteur

Chris Houser
Auteur

Jerry Alexandratos
Auteur

Seemant Kulleen
Développeur Gentoo x86

Tavis Ormandy
Développeur Gentoo Alpha

Jason Huebel
Développeur Gentoo AMD64

Guy Martin
Développeur Gentoo HPPA

Pieter Van den Abeele
Développeur Gentoo PPC

Joe Kallar
Développeur Gentoo SPARC

John P. Davis
Correcteur

Pierre-Henri Jondot
Correcteur

Eric Stockbridge
Correcteur

Rajiv Manglani
Correcteur

Jungmin Seo
Correcteur

Stoyan Zhekov
Correcteur

Jared Hudson
Correcteur

Colin Morey
Correcteur

Jorge Paulo
Correcteur

Carl Anderson
Correcteur

Jon Portnoy
Correcteur

Zack Gilburd
Correcteur

Jack Morgan
Correcteur

Benny Chuang
Correcteur

Erwin
Correcteur

Joshua Kinard
Correcteur

Tobias Scherbaum
Correcteur

Lars Weiler
Correcteur

Jochen Maes
Correcteur

Grant Goodyear
Relecteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Xavier Neys
Traducteur responsable

Camille Huot
Traducteur responsable

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.