/etc/portage/make.conf

From Gentoo Wiki
< /etc‎ | portage
Jump to:navigation Jump to:search
This page is a translated version of the page /etc/portage/make.conf and the translation is 100% complete.

/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.

See also
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)

Remarque
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.

Remarque
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.

Attention !
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.
Remarque
Depuis la version de profil 23.0, il n'est plus recommandé de définir la variable CHOST dans le fichier make.conf.[1]
See also
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.

FILE /etc/portage/make.confParamétrage de base et sans danger pour CFLAGS et CXXFLAGS
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
See also
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.

FILE /etc/portage/make.confExemple de définition avec CONFIG_PROTECT
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.

FILE /etc/portage/make.confAjouter la fonctionnalité "keepwork" à la variable FEATURES de Portage
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.

See also
Rendez-vous sur l'article FEATURES pour plus d'informations.

GENTOO_MIRRORS

See also
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.

FILE /etc/portage/make.confParamètre recommandé pour un processeur dual core avec hyper-threading et 8 Go de RAM
MAKEOPTS="-j4"
See also
Rendez-vous sur l'article MAKEOPTS pour plus d'informations.
Remarque
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 :

FILE /etc/portage/make.confPermettre la construction de 3 paquets en parallèle
EMERGE_DEFAULT_OPTS="--jobs 3"

Pour plus d'informations, voir l'article EMERGE_DEFAULT_OPTS.

PORTAGE_SCHEDULING_POLICY

See also
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.

FILE /etc/portage/make.confParamétrage PORTAGE_TMPDIR par défaut
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 !
Attention à l'endroit où vous placez votre DISTDIR ! Seuls les utilisateurs de confiance doivent avoir un accès en écriture à cet emplacement.


La vérification de l'intégrité des fichiers et le décompactage sont des opérations non atomiques, ce qui permet une attaque où un fichier est échangé entre les deux, ce qui peut compromettre le système.
FILE /etc/portage/make.confUtiliser un emplacement DISTDIR différent
DISTDIR=/var/gentoo/distfiles

Pour plus d'informations, reportez vous à l'aticle sur DISTDIR.

PKGDIR

PKGDIR/fr

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.

FILE /etc/portage/make.confExemple de drapeaux USE globaux
USE="-kde -qt5 ldap"
See also
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.
Remarque
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.
Conseil
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.

FILE /etc/portage/make.confPour accepter toutes les licences sur tous les logiciels
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.

FILE /etc/portage/make.confAccepter toutes les licences des tous les paquets, sauf les proprétaires
ACCEPT_LICENSE="* -@EULA"
FILE /etc/portage/make.confPour accepter les licences de logiciels libres
ACCEPT_LICENSE="-* @FREE"

LINGUAS

FILE /etc/portage/make.conf
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_*

See also
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.

FILE /etc/portage/make.conf
# Réglage des langues
L10N="de pt-BR en en-US en-GB"
Remarque
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 :

FILE /etc/portage/make.confRéglage de VIDEO_CARDS sur intel nvidia radeon vesa
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

Ressources Externes

Références