[ << ]
[ < ]
[ 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. Séparez
les mots-clefs par des espaces. 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 : Lire la page man de make.conf |
$ man make.conf
|
Pour connaitre 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 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 3 : 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 -jX où X 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 4 : 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 5 : 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 entrainer 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 6 : 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 7 : 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. Puisque Portage utilise
un répertoire différent du répertoire par défaut, vous devez définir la
variable CCACHE_DIR :
Exemple de code 8 : Afficher les statistiques de ccache |
# CCACHE_DIR="/var/tmp/ccache" ccache -s
|
Le répertoire /var/tmp/ccache est utilisé par Portage par défaut.
Vous pouvez spécifier le répertoire de votre choix en définissant la variable
CCACHE_DIR dans le fichier /etc/make.conf.
Cependant, quand vous exécutez ccache, pour voir les statistiques par
exemple, le répertoire par défaut est ${HOME}/.ccache, ce qui
explique pourquoi vous devez définir la variable CCACHE_DIR pour voir
les statistiques ccache de Portage.
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 .bash_profile qui se trouve à la racine de
votre compte utilisateur. Utiliser .bash_profile est une des
manières de définir la variable PATH :
Exemple de code 9 : Modifier le fichier .bash_profile |
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
|
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
FAQ.
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 10 : 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 11 : 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 12 : Lire la page man de emerge |
$ man emerge
|
3.e. Récupération des fichiers
Récupération en parallèle
Quand vous installez une série de paquets, Portage peut commencer la
récupération des sources du paquet suivant dans la liste pendant qu'il en
compile un autre, réduisant ainsi la durée de l'installation.
Pour activer cette option, ajoutez « parallel-fetch » à la variable
FEATURES.
Userfetch : récupération en tant qu'utilisateur normal
Quand Portage est lancé par le super-utilisateur, l'option
FEATURES="userfetch" autorise Portage à rendre les privilèges du
super-utilisateur pendant qu'il récupère les sources du paquet. Ceci est une
légère amélioration en termes de sécurité.
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|