/etc/portage/make.conf
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
/etc/portage/make.conf, anciennement /etc/make.conf, est le fichier de configuration principal pour régler l'environnement de Portage au niveau global. Le dossier /etc/portage contient la plupart des autres fichiers de configuration de Portage.
Les paramètres contenus dans make.conf s'appliqueront à chaque paquet à émerger. Ces paramètres contrôlent de nombreux éléments comme les drapeaux USE globaux, les options de langue, les miroirs de Portage, etc.
Une version de base est installée pendant l'extraction de l'archive de stage, un exemple peut aussi être trouvé dans /usr/share/portage/config/make.conf.example.
Comme beaucoup de fichiers de configuration de Portage, make.conf peut aussi être sous la forme d'un dossier, son contenu sera dans ce cas, fusionnés comme s'il s'agissait d'un seul et même fichier.
Le Manuel décrit aussi l'utilisation de make.conf, tout particulièrement dans les sections drapeaux USE, fonctionnalités de Portage et les variables. Lire man make.conf pour une documentation complète.
Préséance
La configuration finale de Portage ne se base pas uniquement sur make.conf. Les paramètres globaux de ce fichier peuvent être plus fins (ou redéfinis) au niveau d'un seul paquet dans les fichiers se trouvant dans /etc/portage/package.use/ ou dans les variables d'environnement. Les paramètres par défaut gérés par la distribution sont aussi disponibles (d'un côté par les paramètres par défaut du paquet Portage, de l'autre par le profil Gentoo qui a été choisi).
Bien que Portage gère toujours l'ancien emplacement /etc/make.conf, son utilisation est déconseillée en faveur de /etc/portage/make.conf. Quand les deux fichiers existent en même temps, les paramètres dans /etc/portage/make.conf prévalent ceux dans /etc/make.conf.
Variables
Il existe de nombreuses variables réglable dans make.conf. Seules les plus communes sont expliquées plus loin dans cet article, avec un exemple et un lien (si pertinent). Pour plus d'informations et la liste complète des variables, consulter la page man de make.conf en lançant :
user $
man make.conf
La plupart des variables sont facultatives, elles peuvent occuper plusieurs lignes, mais elles jamais ne doivent apparaître plus d'une fois.
Différentes configurations demanderont différentes variables à configurer. Ne pas prendre les exemples suivants comme une liste définitive, ou un minimum vital de pré-requis - il suffit de paramétrer les variables nécessaires.
CHOST
La variable CHOST est donné lors de l'étape de configuration des ebuilds pour régler la plateforme de compilation.
Les profils de Portage paramètrent déjà convenablement la valeur de CHOST,la mettre à jour requiert des connaissances et de l’expérience dans les chaînes de compilations.
Depuis la version du profil 23.0 il n'est plus recommandé de définir la variable CHOST dans le fichier make.conf.[1]
Voir l'article CHOST pour plus d'informations.
CFLAGS et CXXFLAGS
Les variables CFLAGS et CXXFLAGS définissent la construction des paquets qui seront déployer et leur drapeau de compilation (nonobstant quelques exceptions selon qui filtre les drapeau connu pour poser des problèmes avec le paquet). La variable CFLAGS est utilisé pour les applications basé sur le C, tandis que CXXFLAGS l’est pour les applications écrites en C++. La plupart des utilisateurs garderont le contenu de ces deux variables à l’identique.
/etc/portage/make.conf
Paramétrage sûr et largement utilisé pour CFLAGS et CXXFLAGSCFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
Pour plus d’informations se référer aux articles optimisation de GCC, les CFLAGS sûr et CFLAGS et CXXFLAGS dans le manuel de Gentoo. Voir aussi l’article FAQ - Cela devient très instable en utilisant les options d'optimisations '-O9 -ffast-math -fomit-frame-pointer'. Que faire ?.
CONFIG_PROTECT
La variable CONFIG_PROTECT contient une liste de fichiers et/ou répertoires, séparés par une espace, que Portage protègera d'une modification automatique. Les modifications proposées aux emplacements de configuration protégés nécessiteront une fusion manuelle de la part de l'administrateur système (voir dispatch-conf ou des outils de fusion similaires).
Une liste des emplacements actuellement protégés peut être affichée avec portageq:
user $
portageq envvar CONFIG_PROTECT
/etc /usr/share/config /usr/share/gnupg/qualified.txt
L'utilisation de portageq est une alternative courte à l'exécution d'une recherche par expression régulière sur la sortie verbeuse et informative de la commande emerge :
user $
emerge --verbose --info | grep -E '^CONFIG_PROTECT='
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
Des fichiers et sous-répertoires définis au sein de CONFIG_PROTECT peuvent être exclus de la protection grâce à la variable CONFIG_PROTECT_MASK. Le masquage est utile lorsqu'un répertoire parent doit être protégé, mais pas un répertoire enfant en particulier.
La variable a une configuration par défaut saine, gérée par l'installation de Portage et le profil Gentoo de l'utilisateur. Elle peut être étendue par l'environnement système (qui est souvent utilisé par des applications qui mettent à jour la variable via leur fichier /etc/env.d) et par le fichier /etc/portage/make.conf de l'utilisateur.
/etc/portage/make.conf
Exemple de définition avec CONFIG_PROTECTCONFIG_PROTECT="/var/bind"
Voir également le chapitre Environment variables dans le manuel de Gentoo.
FEATURES
La variable FEATURES contient une liste des fonctionnalités de Portage que l'utilisateur peut vouloir activer sur le système, influençant grandement le comportement de celui-ci. Il est paramétré par défaut via /usr/share/portage/config/make.globals, mais peut facilement être mis à jour à travers /etc/portage/make.conf. Étant une variable incrémentale, les valeurs de FEATURES peuvent s'additionner sans pour autant remplacer celles implémentées à travers le profile (NdT: en cours d'usage) de Gentoo.
/etc/portage/make.conf
Ajouter la fonctionnalité "keepwork" à la variable FEATURES de PortageFEATURES="keepwork"
Pour de plus amples informations, voir les fonctionnalités de Portage dans le manuel (NdT: Handbook dans le texte original) et l'article FEATURES. Pour une liste complète des fonctionnalités disponibles, voir man 5 make.conf.
Voir l'article FEATURES pour plus d'informations.
GENTOO_MIRRORS
Voir l'article GENTOO_MIRRORS pour plus d'informations.
MAKEOPTS
La variable MAKEOPTS est utilisée pour spécifier les arguments transmis à make quand les paquets sont construits à partir des sources.
/etc/portage/make.conf
Paramètre recommandé pour un processeur dual-core avec l’Hyper-Threading activé et pour 8 Go de RAMMAKEOPTS="-j4"
Voir l'article MAKEOPTS pour plus d'informations.
Lire l'article EMERGE_DEFAULT_OPTS car cette variable aussi modifie le comportement de la construction des paquets.
EMERGE_DEFAULT_OPTS
EMERGE_DEFAULT_OPTS est une variable pour Portage qui définit les entrées à ajouter à la ligne de commande emerge.
EMERGE_DEFAULT_OPTS est souvent utilisé pour permettre des opérations d'émergence (ndt: emerge) concurrentes grâce aux options --jobs N
et --load-average X.Y
qui indiquent à Portage combien de constructions de paquets peuvent être exécutées simultanément et jusqu'à quelle charge système (load average) le parallélisme peut être utilisé.
Par exemple, pour exécuter jusqu'à trois tâches de construction simultanément :
/etc/portage/make.conf
Permettre la construction de 3 paquets en parallèleEMERGE_DEFAULT_OPTS="--jobs 3"
Pour plus d'informations, voir l'article EMERGE_DEFAULT_OPTS.
PORTAGE_SCHEDULING_POLICY
Lire l'article Priorité de Portage.
PORTAGE_TMPDIR
La variable PORTAGE_TMPDIR définit l'emplacement des fichiers temporaires de Portage. La valeur par défaut est /var/tmp, résultant en /var/tmp/portage pour l’emplacement des compilations, /var/tmp/ccache pour le support de la mise en cache des objets de compilations avec ccache et ainsi de suite.
/etc/portage/make.conf
Paramétrage PORTAGE_TMPDIR par défautPORTAGE_TMPDIR="/var/tmp"
Sur certains systèmes, /var/tmp/ peut être monté avec l'option noexec
. L'erreur suivante sera alors affichée par emerge lors de la compilation de paquets :
user $
emerge --ask package
Can not execute files in /var/tmp/portage Likely cause is that you've mounted it with one of the following mount options: 'noexec', 'user', 'users' Please make sure that portage can execute files in this directory.
NdT: En français.
[Portage] Ne peut exécuter des fichiers dans /var/tmp/portage Sûrement car vous l’avez monté avec l’une des options suivantes : 'noexec', 'user', 'users' Merci de vous assurer que portage puisse exécuter des fichiers dans ce répertoire.
Dans ce cas, si supprimer l'option problématique du fichier /etc/fstab n'est pas possible, la variable PORTAGE_TMPDIR doit être définie pour pointer sur un répertoire différent.
Si assez de mémoire est disponible, construire des paquets peut être accéléré en montant PORTAGE_TMPDIR en mémoire vive. Voir l'article TMPDIR de Portage sur tmpfs pour plus d'informations.
DISTDIR
La variable DISTDIR définit l'emplacement dans lequel Portage conservera le code source téléchargé Sa valeur est par défaut /var/cache/distfiles sur les nouvelles installations. Auparavant, la valeur par défaut était ${PORTDIR}/distfiles qui pointait sur /usr/portage/distfiles par défaut.
Les utilisateurs peuvent définir la variable DISTDIR dans /etc/portage/make.conf :
Attention à l'endroit où vous placez votre DISTDIR ! Seuls les utilisateurs de confiance doivent avoir un accès en écriture à cet emplacement.
/etc/portage/make.conf
Utiliser un emplacement DISTDIR différentDISTDIR=/var/gentoo/distfiles
Pour plus d'informations, reportez vous à l'aticle sur DISTDIR.
PKGDIR
USE
La variable USE permet l'activation ou la désactivation des drapeaux USE au niveau du système [entier]. Cette variable est une liste séparée par des espaces et peut s'étendre sur plusieurs lignes.
USE="-kde -qt5 ldap"
Voir l'article sur les drapeaux USE pour une explication complète. Voir déclarer des options de la variable USE pour certains paquets seulement pour les drapeaux USE et le fichier /etc/portage/package.use, à propos des paramètres des drapeaux USE pour un paquet individuel.
Toujours considérer l'intérêt de paramétrer un drapeau USE globalement et quelles seront ses implications sur le système, ou s'il est préférable de simplement ajouter le drapeau pour un ou plusieurs paquets individuellement.
Un drapeau peut temporairement être ajouté dans la ligne de commande pour voir les effets que ça aura, avant de les écrire dans le fichier world : USE="[drapeau(x) USE à tester]" emerge --pretend --verbose --update --deep --newuse world
ACCEPT_LICENSE
La variable ACCEPT_LICENSE signale à Portage quelles licences de logiciel sont acceptées. Les paquets dont la licence n'aura pas été accepté ne peuvent pas être installés sur le système.
ACCEPT_LICENSE="*"
La méthode de choix pour accepter toutes les licences est de définir -@EULA qui autorisent les utilisateurs à vérifier les termes des logiciels propriétaires.
/etc/portage/make.conf
Pour accepter toutes les licences sur tout les paquets exceptés ceux qui sont propriétaireACCEPT_LICENSE="* -@EULA"
/etc/portage/make.conf
Pour accepter les logiciels libres uniquementACCEPT_LICENSE="-* @FREE"
USE_EXPAND
Dans le passé le drapeau USE_EXPAND était placée à l’intérieur de /etc/portage/make.conf mais cela peut conduire à des erreurs avec Portage. À cause de cela, cet article utilise désormais la méthode préféré avec /etc/portage/package.use.
La variable USE_EXPAND est une liste écrite dans profiles/base/make.defaults depuis Portage 2.0.51.20. [2]
CPU_FLAGS_*
Voir l'article CPU_FLAGS_* pour plus d'informations.
La variable CPU_FLAGS_* informe Portage sur les fonctionnalités du processeur. Cette information est utilisée pour optimiser les constructions de paquets pour utiliser lesdites fonctionnalités. Les variables gérées aujourd'hui sont : CPU_FLAGS_X86 pour les architectures amd64 et x86, CPU_FLAGS_ARM pour les architectures arm et arm64, et CPU_FLAGS_PPC pour les architectures ppc et ppc64.
L'utilitaire cpuid2cpuflags (se trouvant dans le paquet app-portage/cpuid2cpuflags) peut être utilisé pour obtenir une liste complète des fonctionnalités du processeur de la machine. Après installation, entrez :
user $
cpuid2cpuflags
CPU_FLAGS_X86: aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3
INPUT_DEVICES
Rendez vous à la section make.conf de l'article Xorg/Guide et sur les valeurs possibles.
LINGUAS
Rendez vous sur LINGUAS dans le guide de localisation.
/etc/portage/package.use/00local
*/* LINGUAS: de pt_BR en en_US en_GB
L10N
Voir L10N dans le guide de localisation.
/etc/portage/package.use/00local
*/* L10N: de pt-BR en en-US en-GB
Bien que les codes de langue sur deux caractères (comme
de
ou fr
) sont identiques dans LINGUAS et L10N, les valeurs plus complexes ont une syntaxe différente car L10N utilise la norme IETF (alias BCP 47). Par exemple, pt_BR
et sr@latin
dans LINGUAS deviennent respectivement pt-BR
et sr-Latn
dans L10N.VIDEO_CARDS
Cette méthode est obsolète à cause du bug bug #922307, pour la manière correcte de sa mise en place merci d’utiliser le lien Handbook:AMD64/Installation/Base
Pour les valeurs possibles de cette variable USE_EXPAND, rendez-vous sur VIDEO_CARDS.
Machine | Carte graphique dédiée | VIDEO_CARDS |
---|---|---|
Intel x86 | Aucune | Voir Intel#Feature support |
x86/ARM | Nvidia | nvidia
|
Any | Nvidia sauf Maxwell, Pascal et Volta | nouveau
|
Any | AMD depuis Sea Islands | amdgpu radeonsi
|
Any | ATI et AMD plus anciennes | Voir radeon#Feature support |
Any | Intel | intel
|
Raspberry Pi | N/A | vc4
|
QEMU/KVM | Tous | virgl
|
WSL | Tous | d3d12
|
Avec les combinaisons communes de machines et de carte vidéos, substituer le nom du ou des pilotes à utiliser.
La valeur approprié pour VIDEO_CARDS installera les pilotes nécessaires.
Après le changement de la valeur de VIDEO_CARDS il faut se rappeler de mettre à jour le système en utilisant la commande suivante pour appliquer les modifications :
/etc/portage/package.use/00video
*/* VIDEO_CARDS: -* intel nouveau radeon radeonsi
root #
emerge --getbinpkg --ask --changed-use --deep @world
Omettre --getbinpkg
afin de ne pas utiliser les paquets binaires configuré de l’hôte.
Pour l'utilisateur lambda, si un environnement de bureau graphique est utilisé, cette variable devrait être définie explicitement. Pour plus d'informations, rendez-vous sur la section make.conf du guide de Xorg.
Pour plus de détails, les articles AMDGPU, Intel, Nouveau et NVIDIA sont à votre disposition.
Voir aussi
- Variables de Portage (Manuel AMD64)
- Fonctionnalités de Portage (Manuel AMD64)
- Variables d'environment (Manuel AMD64)
- Fonctionnalités avancés de Portage (Manuel AMD64)
- Problème d'Emerge avec
/.git/index.lock
à la racine
Ressources Externes
- make.conf - paramètres de Portage - page man de make.conf.
Références
- ↑ Profile upgrade to version 23.0 available (NdT: Mise à jour du profil vers la version 23.0 disponibles), gentoo.org, March 22, 2024. Retrieved on March 24, 2024.
- ↑ https://devmanual.gentoo.org/general-concepts/use-flags/#use_expand-and-arch-use-flags