3.3 Portage et ses fonctionnalités

Les caractéristiques de Portage

Portage offre un ensemble de fonctionnalités additionnelles. Certaines fonctionnalités sont basées sur des outils 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/portage/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 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 (vous pouvez affiner la recherche avec grep) :

emerge --info | grep FEATURES

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.

Installer 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 devez ajouter « gtk » à votre variable USE.

Pour installer distcc, exécutez :

emerge distcc

Activer le support distcc pour Portage

Ajoutez le mot-clé distcc à la variable FEATURES du fichier /etc/portage/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 ») :

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

N'oubliez pas de lancer le démon distccd :

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

Utiliser un cache pour la compilation

A 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 : généralement divisé par 5 à 10 pour chaque recompilation ultérieure.

Pour en savoir plus, rendez-vous sur le site de ccache.

Installation de ccache

Utilisez la commande emerge ccache pour installer ccache :

emerge ccache

Activer le support ccache pour Portage

Ajoutez le mot-clé ccache à la variable FEATURES du fichier /etc/portage/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.

CCACHE_SIZE="2G"

Pour vérifier que ccache fonctionne, vous pouvez 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 CACHE_DIR :

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 /etc/portage/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 ce faire, éditer le fichier /etc/env.d/00basic est une des manières de définir la variable PATH :

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

Paquets binaires

Créer des paquets binaires

Portage supporte l'installation de paquets binaires. Bien que les distributions Calculate Linux incluent des paquets précompilés, ceux-ci se limitent à l'ensemble des logiciels fournis par défaut. Il se peut aussi que vous préfériez créer des paquets binaires avec des options USE personnalisées.

Si le paquet est déjà installé, vous pouvez utiliser la commande quickpkg. Si ce n'est pas le cas, lancez emerge avec l'option --buildpkg ou --buildpkgonly.

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é buildpkg dans la variable FEATURES dans le fichier /etc/portage/make.conf.

Installer des paquets précompilés

Par défaut, la mise à jour des distributions Calculate Linux se fait depuis un dépôt des paquets binaires qui en font partie. Toutefois, chaque distribution dispose d'un profil source en plus du profil binaire. Seule une version stable de chaque paquet précompilé est disponible pour installation sur le profil binaire.

N'oubliez pas de mettre à jour l'overlay Calculate avant de procéder à la mise à jour ; la commande correspondante sera layman -s calculate.

A part définir les paquets masqués, les profils standard de Calculate ajoutent la valeur getbinpkg à la variable FEATURES. La priorité sera donc aux paquets précompilés.

Le chemin du répertoire contenant les paquets binaires doit être défini dans la variable PORTAGE_BINHOST du profil. Vous pouvez, par exemple, indiquer un ou plusieurs dépôts alternatifs dans votre /etc/make.conf.

Il est possible d'utiliser les paquets binaires même si vous êtes sur un profil source. Pour ce faire, lancez emerge avec les options -g (ou --getbinpkg) et -k (ou --usepkg). 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 :

emerge -kg gnumeric

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

Thank you!