Functionality of Portage

Updated 8 Septembre 2019

Fonctionnalités

Portage dispose également de fonctionnalités supplémentaires. Nombre d'entre elles sont étayées par des applications spécifiques qui améliorent la productivité, la fiabilité, la sécurité, etc.

Pour activer ou désactiver une fonctionnalité de Portage, vous devez modifier la variable /etc/portage/make.conf/custom dans le fichier FEATURES+, qui contient une liste de mots-clés de fonctionnalités séparés par des espaces. Il est parfois nécessaire d'installer des utilitaires supplémentaires pour accéder aux fonctionnalités dont vous avez besoin.

Ceci n'est qu'un bref aperçu des fonctionnalités de Portage. Vous trouverez leur liste complète dans le manuel make.conf.

Pour identifier les fonctionnalités activées par défaut, lancez emerge --info et consultez la variable FEATURES (éventuellement en filtrant avec grep) :

emerge --info | grep FEATURES

Compilation distribuée

Utiliser distcc

distcc est un outil permettant de distribuer le processus de compilation sur plusieurs ordinateurs du réseau, qui ne sont pas nécessairement identiques. Le client distcc envoie toutes les données pertinentes aux serveurs distcc disponibles (qui, à leur tour, invoquent distccd) afin qu'ils puissent compiler certaines parties du code source pour le client. Vous gagnez en temps de compilation plus rapide.

Installer distcc

Distcc est livré avec un moniteur graphique, qui est un outil de contrôle permettant de surveiller les tâches de compilation effectuées par votre ordinateur. Si vous êtes un utilisateur de Gnome, ajoutez "gnome" aux valeurs de la variable USE. Si vous n'êtes pas un utilisateur de Gnome mais que vous souhaitez utiliser son environnement graphique, ajoutez "gtk" à USE.

Installez distcc :

emerge distcc

Activer la prise en charge de Portage

Ajoutez distcc aux valeurs de la variablе FEATURES dans /etc/portage/make.conf/custom. Maintenant, vous pouvez modifier la valeur de la variable MAKEOPTS à votre convenance. Une recommandation connue est de spécifier la directive "-jX", où X est le nombre de CPU sur lesquels distccd tourne (y compris l'ordinateur actuel) plus un. Mais vous pouvez aussi améliorer l'expérience en essayant d'autres valeurs.

Lancez maintenant distcc-config et renseignez la liste des serveurs distcc disponibles. Pour simplifier, les serveurs DistCC disponibles sont 192.168.1.102 (ordinateur actuel), 192.168.1.103 et 192.168.1.104 (deux ordinateurs "distants") :

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

Lancez le démon distccd :

rc-update add distccd default

/etc/init.d/distccd start

Compilation en cache

À propos de ccache

ccache est un cache de compilateur rapide. Lorsque vous compilez un programme, celui-ci met en cache les résultats intermédiaires, de sorte que, chaque fois que vous recompilez ce programme, le temps de compilation est considérablement réduit. Généralement, le temps de compilation total peut être réduit de 5 à 10 fois.

Vous trouverez des informations complémentaires sur ccache sur le site Internet du projet.

Installation de ccache

Pour installer ccache, lancez emerge ccache :

emerge ccache

Activer la prise en charge de Portage

Ouvrez /etc/portage/make.conf/custom et ajoutez ccache aux valeurs de FEATURES. Ajoutez ensuite une nouvelle variable, CCACHE_SIZE et affectez-lui la valeur "2G" :

CCACHE_SIZE="2G"

Pour consulter les statistiques de ccache :

ccache -s

Comme Portage utilise un répertoire personnel différent pour ccache, vous devez également définir la variable CCACHE_DIR :

CCACHE_DIR="/var/tmp/ccache"

Le répertoire de base par défaut de ccache est /var/tmp/ccache. Pour le modifier, il suffit de définir la variable CCACHE_DIR dans le fichier /etc/portage/make.conf/custom.

Cependant, c'est le répertoire par défaut, ${HOME}/.ccache, qui est utilisé au démarrage de ccache, de sorte que la variable CCACHE_DIR doit être définie lors de la demande de statistiques de Portage pour ccache.

Utiliser ccache pour une compilation non-Portage en C

Si vous souhaitez utiliser ccache pour des compilations autres que celles de Portage, indiquez /usr/lib/ccache/bin comme première valeur de votre variable PATH (avant /usr/bin). Pour ce faire, modifiez le fichier /etc/env.d/00basic, qui est le premier fichier de l'environnement dans lequel la variable PATH est définie :

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

Prise en charge de paquets binaires

Créer un paquet binaire (précompilé)

Portage permet également d'installer des paquets précompilés. Bien que la plupart des versions de Calculate Linux soient livrées avec des paquets précompilés, leur nombre est limité. Vous pouvez également inclure des paquets avec des drapeaux USE personnalisés.

Pour créer un paquet binaire, vous pouvez utiliser quickpkg si le paquet est déjà installé sur votre système, ou emerge avec l'option --buildpkg ou --buildpkgonly.

Si vous souhaitez que Portage crée des paquets binaires pour chaque paquet que vous installez, ajoutez buildpkg aux valeurs de la variable FEATURES dans le fichier /etc/make.conf.

Installer des paquets binaires

Calculer Linux utilise des dépôts binaires pour la mise à jour, qui contiennent des paquets intégrés dans l'image système effective. Chaque version de Calculate possède un profil source et un profil binaire (par défaut). Le profil binaire fournit une seule version stable pour chaque paquet précompilé.

A noter que vous devez mettre à jour portage avec la commande cl-update avant d'installer un paquet binaire depuis le dépôt.

À part le masquage, le profil définit la variable FEATURES+ comme getbinpkg, donnant ainsi la priorité aux paquets binaires.

Le chemin d'accès au stockage est défini dans la variable PORTAGE_BINHOST de votre profil Calculate. Par exemple, /etc/portage/make.conf/custom contient les chemins d'accès à d'autres hôtes de stockage.

Vous pouvez également installer des paquets précompilés dans un profil commun. Pour ce faire, utilisez le paramètre -g (ou --getbinpkg) avec -k (ou --usepkg) lors de l'exécution de emerge. La première option dit à emerge de télécharger le fichier binaire demandé à partir du serveur défini précédemment, et la seconde option indique à emerge d'essayer d'installer d'abord le fichier binaire avant de récupérer le code source et de le compiler.

Par exemple, si vous souhaitez installer une version précompilée de gnumeric :

emerge -kg gnumeric

Pour en savoir plus sur les paramètres d'installation applicables aux paquets précompilés, consultez la page man de emerge.