Gentoo est une distribution Linux puissante et flexible. Avec son gestionnaire de packages innovant – Portage – il vous permet de sculpter votre système informatique jusqu’à ses éléments les plus élémentaires.

En effet, Gentoo, par défaut, vous demande de compiler tous les packages que vous souhaitez installer. Cette approche vous permet de modifier les paramètres de compilation. Cela inclut des paramètres pour diverses technologies qui n’auraient pas été possibles dans une distribution binaire.

Qu’est-ce que la gestion des paquets sources ?

La gestion des packages basée sur la source est la manière originale de distribuer des programmes tiers sous Linux. Il s’agit d’un système où un mainteneur a une liste de recettes dans l’obtention et la création de programmes.

Ces recettes peuvent contenir à la fois le code source d’un programme et les instructions pour l’obtenir. En tant qu’utilisateur, vous pouvez ensuite télécharger ces recettes auprès de votre distributeur via votre gestionnaire de packages. Une fois cela fait, votre machine téléchargera le code source du programme et le créera en temps réel pour vous.

5 conseils pour accélérer la compilation 04 Distribution d'ebuild

Bien que cela puisse sembler démodé, le faire de cette façon présente un certain nombre d’avantages :

  • Distribuer uniquement la recette d’un package nécessite moins de données que de distribuer des copies binaires. Ceci, à son tour, réduit la quantité de ressources nécessaires pour héberger un miroir d’un référentiel.
  • La compilation d’un package à partir de son code source vous expose aux programmes qui font fonctionner votre système d’exploitation. Cela peut être particulièrement utile si vous souhaitez apprendre comment fonctionne votre ordinateur et comment vous pouvez étendre ses fonctions.
  • Enfin, compiler un package à partir de son code source vous donne la possibilité de personnaliser et de modifier le comportement de vos programmes. Vous pouvez facilement inclure ou supprimer des fonctionnalités dont vous n’avez pas besoin.

Malgré cela, cette approche comporte également un certain nombre d’inconvénients. Par exemple, des packages tels que Firefox et Chromium prennent des heures à compiler et à installer. En effet, ce sont des programmes avec des millions de lignes de code et des centaines de dépendances.

Sachant cela, cet article vise à présenter cinq astuces que vous pouvez utiliser pour améliorer vos temps de compilation lorsque vous utilisez Gentoo.

1. Optimisez MAKEOPTS

L’un des moyens les plus simples d’accélérer les temps de compilation dans Gentoo consiste à optimiser votre make.conf. Il s’agit du fichier de configuration principal utilisé par Portage pour déterminer les paramètres de compilation de votre machine. En tant que tel, il contient une variété de variables qui déterminent l’architecture et les paramètres de votre système.

Vous pouvez trouver le fichier make.conf dans « /etc/portag ». Vous pouvez également imprimer le contenu du fichier avec la commande suivante :

5 Astuces Compilation Rapide 06 Exemple Make Conf

La seule chose que vous devez changer pour optimiser Portage est MAKEOPTS. Il s’agit du paramètre qui traite des indicateurs d’optimisation de votre système. Considérez l’exemple suivant :

Dans ce cas, il existe deux indicateurs que vous pouvez utiliser avec MAKEOPTS :

  • Le -j L’indicateur indique le nombre de tâches de compilation que vous souhaitez allouer à votre CPU. Une bonne règle de base lors de la définition de cette valeur est de lui donner la moitié du nombre de cœurs de votre CPU. Par exemple, si vous utilisez un processeur quadricœur, vous pouvez définir cette valeur sur -j2.
  • Le -l flag, d’autre part, définit la charge moyenne que vous souhaitez pour votre système. La charge moyenne est la quantité combinée de tâches que le processeur effectue pendant un certain temps. Par exemple, si vous souhaitez accélérer les temps de compilation de votre système, vous pouvez définir cette valeur sur -l2.

2. Profitez de CCache

Une autre façon d’accélérer vos temps de compilation est d’utiliser CCache. Il s’agit d’un programme tiers qui vous permet d’enregistrer des fichiers compilés courants dans un espace temporaire de votre ordinateur.

5 Astuces Compilation Rapide 07 Site Ccache

À partir de là, votre compilateur peut alors utiliser ces fichiers enregistrés au lieu de les recompiler à nouveau. Cela peut être particulièrement utile si vous reconstruisez constamment des programmes ou si vous compilez un paquet volumineux.

Vous pouvez installer CCache via Portage :

5 conseils pour accélérer la compilation 08 Installation de Ccache

La prochaine chose à faire est de configurer les paramètres de CCache. Pour ce faire, vous devez créer le fichier ccache.conf :

À partir de là, vous pouvez ensuite utiliser les paramètres de configuration par défaut de CCache pour commencer :

La dernière chose que vous devez faire est de dire à Portage d’utiliser CCache lors de la compilation des packages. Pour ce faire, vous pouvez inclure les lignes suivantes dans votre make.conf :

3. Essayez DistCC

Semblable à CCache, DistCC est également un programme tiers qui peut vous aider à accélérer vos temps de compilation. Contrairement à CCache, DistCC le fait en distribuant les tâches de compilation à d’autres ordinateurs de votre réseau. Cela peut être particulièrement utile si vous avez plusieurs ordinateurs inutilisés chez vous.

5 conseils pour accélérer la compilation 09 Site Web Distcc

La façon dont cela fonctionne est que DistCC est divisé en deux programmes : distccd et distcc.

  • distccd est l’utilitaire qui s’exécute sur le serveur de calcul. Il s’agit d’un programme simple qui écoute les demandes DistCC entrantes des clients et prend en charge leurs tâches. Une fois la compilation terminée, l’objet compilé est ensuite renvoyé au client pour être empaqueté.
  • distcc, d’autre part, est le programme client qui se connecte à distccd. C’est le programme qui fonctionne avec Portage pour planifier et distribuer de manière transparente les tâches de compilation dans un réseau.

La création d’un petit cluster DistCC est relativement simple. Pour ce faire, vous devez installer le programme distcc à la fois sur votre serveur et sur votre PC client :

Configuration d’un serveur DistCC

Ensuite, vous devez configurer votre serveur pour accepter les connexions DistCC. Vous pouvez le faire en créant un fichier de configuration distcc dans « /etc/conf.d/ » :

Une fois cela fait, vous pouvez inclure la ligne de code suivante dans votre fichier distccd :

  • Le port flag indique le port sur lequel distccd écoutera les connexions entrantes. 3632 est le port par défaut pour DistCC.
  • Le log-level et log-file indique à DistCC de conserver un fichier journal pour les tâches qu’il effectue.
  • Le N flag indique la « gentillesse » de distccd. Il s’agit d’une variable qui indique à DistCC combien il peut utiliser le processeur du serveur pour les tâches de compilation. Il s’agit d’une valeur comprise entre 0 et 20, où 0 est le moins agréable et 20 le plus.
  • Enfin, le allow indique à DistCC de n’écouter que les connexions entrantes provenant d’adresses spécifiques. Par exemple, la ligne ci-dessus indique à DistCC de n’écouter que les connexions entrantes d’un seul client.
5 Astuces Compilation rapide 11 Distcc Config

La prochaine chose que vous devez faire est de créer le fichier journal distccd :

Cela fait, vous pouvez maintenant activer votre serveur distccd pour accepter les connexions DistCC entrantes :

Configuration de votre client DistCC

Contrairement à distccd, la configuration de votre client DistCC est incroyablement simple. Vous devez d’abord dire à votre client où chercher le serveur distccd :

5 conseils pour accélérer la compilation de la configuration du client 12 Distcc

Cela indiquera à DistCC d’utiliser à la fois la machine locale et le serveur pour compiler les programmes. À partir de là, il ne vous reste plus qu’à configurer votre make.conf pour utiliser DistCC.

Semblable à CCache, vous devez utiliser la variable FEATURES pour indiquer à Portage que vous exécutez DistCC sur votre réseau. Par exemple, voici un make.conf d’une machine client :

4. Utilisez BuildPKG

Une autre façon d’accélérer les temps de compilation dans Gentoo est de créer un serveur de distribution binaire. Dans ce cas, vous utilisez une machine distincte où les packages sont construits et distribués sous forme binaire.

Contrairement à DistCC, la distribution de binaires ne nécessite qu’une seule machine pour effectuer la compilation. Le programme résultant est ensuite partagé sur plusieurs machines où ils peuvent l’installer normalement.

5 conseils pour accélérer la compilation 13 Buildpkg Distribution

Procéder de cette manière peut être utile si vous utilisez déjà Gentoo sur un certain nombre de machines similaires. En effet, les binaires réduisent le temps nécessaire à la création et à la maintenance d’un client unique.

Pour commencer, il vous suffit d’ajouter la ligne suivante au make.conf de votre serveur de build :

5 conseils pour accélérer la compilation 14 Buildpkg Build Server Config

Cela, à son tour, indiquera à Portage de créer automatiquement un paquet binaire pour chaque programme que vous installez sur votre serveur.

À partir de là, vous devez créer un moyen de partager ces fichiers binaires avec les machines de votre réseau. Pour cela, vous pouvez installer un simple serveur Web HTTP :

Ensuite, dites à lighttpd de servir les packages de votre serveur en ajoutant la ligne suivante à votre « /etc/lighttpd/lighttpd.conf » :

Installer des paquets binaires dans Gentoo

Cela fait, l’installation de packages binaires à partir de votre serveur de distribution est un processus simple en deux étapes. Vous devez d’abord indiquer à Portage l’adresse de votre serveur de distribution :

5 conseils pour accélérer la compilation de 15 configurations client Buildpkg

À partir de là, j’ai utilisé Portage pour installer les packages binaires :

Ici le -K forcera Portage à rechercher uniquement les fichiers binaires du paquet que vous souhaitez installer.

Ce faisant, il examinera le serveur s’il possède des copies du programme Firefox. Si Portage n’en trouve pas, l’installation échouera. Cela signifie finalement que le serveur doit déjà avoir le binaire d’un programme avant que les clients ne le demandent.

5. Optimisez votre compilateur dans Gentoo

Enfin, vous pouvez également définir le Compilateur GNU C (GCC) pour lui permettre d’optimiser la vitesse.

Compilation accélérée en 5 astuces Compilation rapide en 16 exemples

Contrairement à MAKEOPTS, cependant, ces options dépendront de la machine dont vous disposez. Cela inclut le processeur ainsi que le disque dur et la mémoire dont vous disposez.

De plus, vous devez placer ces options dans le COMMON_FLAGS variable. Par example:

En cela, il y a trois options que vous pouvez définir pour optimiser GCC :

  • Le march L’option indique à GCC de compiler le programme dans le CPU que vous voulez. Dans la plupart des cas, vous dites à GCC de créer le programme pour votre CPU local. Pour ce faire, vous pouvez donner la valeur « natif » et GCC se construira pour le processeur sur lequel il s’exécute actuellement.
  • Le O L’option indique le niveau d’optimisation que vous souhaitez pour vos programmes. Il s’agit d’une plage comprise entre 0 et 3 et plus la valeur que vous définissez est élevée, plus le programme s’exécutera rapidement. Cependant, cela augmentera le temps nécessaire à sa compilation.
  • Le pipe L’option est une bascule que vous pouvez définir pour accélérer le processus de compilation. Pour ce faire, il conserve des objets dans la RAM au lieu de les enregistrer dans des fichiers temporaires. En tant que tel, cela consommera beaucoup de mémoire et l’utiliser avec une RAM limitée fera planter GCC.
5 conseils pour accélérer la compilation 17 options d'optimisation

Questions fréquemment posées

1. Je n’ai pas de variable MAKEOPTS ou FEATURES dans mon make.conf. Mon installation Gentoo est-elle cassée ?

Non! Il est normal que le fichier make.conf par défaut ne contienne pas les variables MAKEOPTS et FEATURES. Vous pouvez simplement ajouter les variables et leurs valeurs à votre make.conf et Portage le reconnaîtra et l’appliquera immédiatement.

2. Est-il possible de n’activer CCache que pour les packages que je souhaite ?

Oui! Vous activez facilement CCache uniquement pour des packages spécifiques. Pour ce faire, vous devez d’abord supprimer la valeur « ccache » dans votre variable FEATURES.

De là, vous devez éditer le fichier « /etc/portage/package.env ». Il s’agit du fichier dans lequel vous pouvez activer les fonctionnalités de Portage par package. Sachant cela, il s’agit d’un fichier package.env qui utilise CCache pour certains programmes :

Ce faisant, j’ai activé CCache pour Firefox, GCC et Clang. Cela signifie que Portage ne sauvegardera que les fichiers objets de ces programmes et leurs dépendances associées.

3. Y a-t-il des problèmes avec l’exécution d’un serveur de distribution Gentoo ?

L’un des principaux problèmes liés à la maintenance d’un serveur de distribution est que vous êtes responsable de la mise à jour des packages binaires. Cela signifie qu’avant de pouvoir mettre à jour des clients, vous devez d’abord mettre à jour le serveur de distribution, puis supprimer les anciens fichiers binaires de vos clients.

Un autre problème lié à l’exécution d’un serveur de distribution est que vous perdez la flexibilité des indicateurs USE pour vos machines clientes. Cela signifie que vous devez activer les indicateurs dont vous n’avez pas besoin sur toutes vos machines.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici