/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. Lisez 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égler 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, consultez la page man de make.conf en lançant :
user $
man make.conf
La plupart des variables sont facultatives, peuvent occuper plusieurs lignes, mais jamais ne peuvent apparaître plus d'une fois.
Différentes configurations demanderont différentes variables à configurer. Ne prenez pas les exemples comme une liste immuable, ou un minimum vital. Ne configurez que les variables dont vous avez besoin.
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 définissent déjà une valeur appropriée pour CHOST, et la modifier requiert de l'expérience dans les chaînes de compilation.
Depuis la version de profil 23.0, il n'est plus recommandé de définir la variable CHOST dans le fichier make.conf.[1]
Vous pouvez lire l'article CHOST pour plus d'informations.
CFLAGS et CXXFLAGS
Les variables CFLAGS et CXXFLAGS définissent les drapeaux de construction et de compilation qui seront utilisés pour tous les déploiements de paquets (à quelques exceptions près qui filtrent les drapeaux connus pour causer des problèmes avec le paquet). La variable CFLAGS est destinée aux applications basées sur le langage C, tandis que CXXFLAGS est destinée aux applications basées sur le langage C++. La plupart des utilisateurs conserveront le même contenu dans les deux variables.
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
Pour plus d'informations, référez-vous à l'article Optimization de GCC, safe CFLAGS, le manuel à la page CFLAGS et CXXFLAGS ainsi que la FAQ.
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.
CONFIG_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.
FEATURES="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.
Rendez-vous sur l'article FEATURES pour plus d'informations.
GENTOO_MIRRORS
Rendez-vous sur l'article GENTOO_MIRRORS pour plus d'informations.
MAKEOPTS
La variable MAKEOPTS est utilisée pour spécifier les arguments donnés à make quand les paquets sont construits à partir du code source.
MAKEOPTS="-j4"
Rendez-vous sur l'article MAKEOPTS pour plus d'informations.
Rendez-vous aussi à 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 :
EMERGE_DEFAULT_OPTS="--jobs 3"
Pour plus d'informations, voir l'article EMERGE_DEFAULT_OPTS.
PORTAGE_SCHEDULING_POLICY
Rendez-vous sur l'article Priorité de Portage.
PORTAGE_TMPDIR
La variable PORTAGE_TMPDIR définit l'emplacement des fichiers temporaires de Portage. Par défaut, ce dernier est le dossier /var/tmp, donnant alors /var/tmp/portage pour l'emplacement des constructions de paquets, /var/tmp/ccache pour le support de ccache de Portage et ainsi de suite.
PORTAGE_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.
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 vous avez suffisamment de mémoire vive disponible, vous pouvez accélérer la construction des paquets en montant PORTAGE_TMPDIR en RAM. Rendez-vous sur 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.
DISTDIR=/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 système. Cette variable est une liste séparée par des espaces et peut s'étendre sur plusieurs lignes.
USE="-kde -qt5 ldap"
Rendez-vous sur l'article sur les drapeaux USE pour une explication complète. Regardez aussi le fichier /etc/portage/package.use pour savoir comment utiliser les drapeaux USE au niveau d'un paquet.
Il faut toujours se demander s'il vaut la peine de définir un indicateur USE de manière globale et quelles en seront les conséquences sur le système, ou s'il est préférable de définir un indicateur pour un ou plusieurs paquets individuellement.
Un drapeau peut temporairement être activé ou désactivé 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. Le paquets dont la licence n'aura pas été accepté ne seront pas installées sur le système.
ACCEPT_LICENSE="*"
La façon la plus simple d'accepter toutes les licences est d'utiliser -@EULA, qui permet à l'utilisateur de vérifier tout de même les licences des logiciels propriétaires.
ACCEPT_LICENSE="* -@EULA"
ACCEPT_LICENSE="-* @FREE"
LINGUAS
Rendez vous sur LINGUAS dans le guide de localisation.
LINGUAS="de pt_BR en en_US en_GB"
USE_EXPAND
La variable USE_EXPAND est une liste écrite dans profiles/base/make.defaults depuis Portage 2.0.51.20. [2]
CPU_FLAGS_*
Rendez-vous sur 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
Ce résultat peut ensuite être ajouté dans /etc/portage/make.conf ou /etc/portage/package.use/.
INPUT_DEVICES
Rendez vous à la section make.conf de l'article Xorg/Guide et sur les valeurs possibles.
L10N
Voir L10N dans le guide de localisation.
# Réglage des langues
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
Pour les valeurs possibles de cette variable USE_EXPAND, rendez-vous sur VIDEO_CARDS.
Mettre la bonne valeur dans VIDEO_CARDS installera les bons pilotes :
VIDEO_CARDS="intel nvidia radeon vesa"
Changez le nom du ou des pilotes à utiliser. Le table suivant énumère les configurations communes de machines et de cartes graphiques :
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
|
Après avoir modifié la valeur de VIDEO_CARDS, n'oubliez pas de mettre à jour le système en utilisant la commande suivante pour que les changements prennet effet :
root #
emerge --ask --changed-use --deep @world
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, gentoo.org, March 22, 2024. Retrieved on March 24, 2024.
- ↑ https://devmanual.gentoo.org/general-concepts/use-flags/#use_expand-and-arch-use-flags