USE flags

Updated 7 Novembre 2026

Cette page s'applique à Portage 3.0.82 et Calculate Utilities 3.8.

Que sont les drapeaux USE

Le principe les drapeaux USE

Lorsque vous installez le système, vous choisissez sa composition en fonction de l'environnement dans lequel vous travaillez : une configuration serveur diffère d'un poste de travail, et un poste de jeu vidéo diffère d'une machine de rendu 3D.

Il ne s'agit pas seulement de l'ensemble des paquets, mais aussi des fonctionnalités que chaque paquet doit prendre en charge. Si vous n'avez pas besoin d'OpenGL, pourquoi l'installer et intégrer sa prise en charge dans la plupart des programmes ? Si vous n'utilisez pas KDE, pourquoi compiler des paquets avec la prise en charge de KDE alors qu'ils fonctionnent très bien sans elle ?

Les drapeaux USE sont un moyen bref de décrire votre environnement de travail : ils vous aident à décider quoi installer et activer, et quoi laisser de côté. Ainsi, vous décidez vous-même de ce dont vous avez vraiment besoin, et Portage dispose d'une base pratique pour prendre de bonnes décisions.

Définition du drapeau USE

Un drapeau USE est un mot-clé qui décrit la prise en charge d'une fonctionnalité et les dépendances associées. Lorsqu'un drapeau est activé, Portage part du principe que l'administrateur système a besoin de la prise en charge de cette fonctionnalité. L'activation d'un drapeau modifie les informations de dépendance d'un paquet : la prise en charge demandée peut exiger de nombreuses dépendances supplémentaires.

Prenons un exemple - le drapeau kde. Si le mot kde ne figure pas dans la variable USE, ou y est inscrit avec un moins devant (-kde), alors tous les paquets à prise en charge KDE facultative sont compilés sans elle, et les paquets ayant une dépendance facultative à KDE sont installés sans les bibliothèques KDE. Si le drapeau kde est activé, ces mêmes paquets sont compilés avec la prise en charge de KDE, et les bibliothèques KDE sont installées en tant que dépendances.

Des drapeaux USE précisément définis adaptent le système à vos besoins.

Utiliser les drapeaux USE

Drapeaux USE permanents

Tous les drapeaux USE sont répertoriés dans la variable USE. Pour éviter d'avoir à constituer cette liste à partir de zéro, le profil définit déjà un ensemble de valeurs couramment utilisées - elles sont déclarées dans les fichiers make.defaults du profil.

Le profil que suit le système est défini par le lien symbolique /etc/portage/make.profile. Dans Calculate Linux, il s'agit du profil de la distribution, issu du dépôt distrosle profil CLD s'appuie sur le profil bureau de Calculate calculate:default/amd64/20/desktop, qui s'appuie lui-même sur le profil Gentoo gentoo:default/linux/amd64/23.0/split-usr.

Pour voir la liste complète des drapeaux actifs, exécutez :

emerge --info | grep ^USE=

La variable contient déjà un bon nombre de mots-clés. Ne modifiez pas directement les fichiers make.defaults du profil : ces modifications seront annulées lors de la mise à jour du dépôt.

Pour modifier les valeurs par défaut, ajoutez à la variable USE les mots-clés dont vous avez besoin, ou retirez ceux dont vous n'avez pas besoin en plaçant un moins devant le mot. Les modifications globales dans Calculate sont conservées dans le fichier /etc/portage/make.conf/custom (pour le répertoire make.conf, voir la page Configurer votre système à l'aide de variables). Par exemple, pour retirer la prise en charge de KDE et de Qt et ajouter LDAP, ajoutez une ligne à ce fichier ; la ligne ci-dessous est un exemple de réglage pour un drapeau global, et non le contenu réel du fichier :

USE="-kde -qt5 ldap"

Les mêmes réglages peuvent aussi être déployés automatiquement par des modèles - c'est ainsi que la distribution fournit, par exemple, l'adresse du dépôt de paquets binaires ; pour plus de détails, voir la page Modèles.

Не переключайте профиль

La commande eselect profile list affiche, dans Calculate, les profils Gentoo "bruts" à côté du profil de la distribution ; le profil de la distribution reste le profil actifles paquets binaires du miroir et les fichiers world générés par les modèles dépendent du profil CLD. Configurer le système passe par les drapeaux USE, les mots-clés et le masquage dans les fichiers de /etc/portage, et non par le changement de profil.

Drapeaux USE par paquet

Parfois, un drapeau est nécessaire pour une ou plusieurs applications, et non pour tout le système. Ce type d'affectation se fait dans le répertoire /etc/portage/package.usevous pouvez écrire dedans ou créer vos propres fichiers.

Par exemple, seul le lecteur multimédia VLC a besoin de la prise en charge du Blu-ray. Créez le fichier /etc/portage/package.use/vlc avec une seule ligne :

/etc/portage/package.use/vlc

media-video/vlc bluray

ou ajoutez cette ligne en une seule commande :

echo media-video/vlc bluray >> /etc/portage/package.use/vlc

Vous pouvez aussi désactiver explicitement un drapeau pour un seul paquet tout en le conservant pour les autres - par exemple, supprimer la prise en charge de bzip2 dans PHP alors qu'il est activé globalement :

/etc/portage/package.use/php

dev-lang/php -bzip2

Drapeaux USE temporaires

Quand vous avez besoin d'un drapeau une seule fois, ne modifiez pas le fichier deux fois : passez USE comme variable d'environnement. Le réglage s'applique uniquement à la commande que vous saisissez ; lorsque l'application est réinstallée ou mise à jour, que ce soit explicitement ou dans le cadre d'une mise à jour du système, les modifications apportées par le drapeau temporaire sont perdues.

Exemple

USE=-pulseaudio emerge seamonkey

Priorité des valeurs

Les réglages USE sont appliqués par ordre de priorité croissante :

  1. la valeur par défaut issue des fichiers make.defaults de votre profil ;
  2. la variable USE définie par l'utilisateur dans /etc/portage/make.conf (dans Calculate, le fichier custom de ce répertoire) ;
  3. les lignes des fichiers du répertoire /etc/portage/package.use/ ;
  4. la variable USE passée dans l'environnement de la commande.

Pour voir la valeur USE résultante telle que Portage la voit, exécutez :

emerge --info

La commande affiche toutes les variables importantes avec leurs définitions actuelles.

Alignement du système sur les nouveaux drapeaux

Après avoir modifié les drapeaux USE, vous devez aligner le système sur les nouvelles valeurs. Pour ce faire, exécutez emerge avec l'option --newuse :

emerge --update --deep --newuse @world

Exécutez ensuite depclean pour supprimer les dépendances conditionnelles installées avec l'ensemble "ancien" des drapeaux et devenues inutiles avec le nouvel ensemble.

Проверяйте список depclean

Vérifiez une seconde fois la liste des paquets "obsolètes"

emerge --pretend --depclean

Après depclean, emerge peut proposer de recompiler des applications liées dynamiquement à des bibliothèques de paquets destinés à la suppression. Portage conserve les bibliothèques nécessaires jusqu'à cette recompilation, et enregistre la liste des paquets en attente dans l'ensemble preserved-rebuild. Pour recompiler, exécutez :

emerge @preserved-rebuild

Une fois toutes les étapes terminées, le système utilise les nouvelles valeurs des drapeaux USE.

Une note sur les paquets binaires. Dans Calculate, --binpkg-respect-use=y figure parmi les options par défaut d'emerge : un paquet binaire prêt à l'emploi n'est utilisé que lorsque l'ensemble de drapeaux USE avec lequel il a été compilé correspond aux réglages actuels ; s'ils ne correspondent pas, le paquet est compilé à partir des sources. Vous n'avez rien à modifier spécialement pour cela.

Dans Calculate, les mises à jour courantes du système se font avec la commande cl-update : elle synchronise les dépôts, met à jour world, applique les modèles et protège les configurations.

Drapeaux par paquet

Visualiser les drapeaux USE disponibles

La formulation exacte des messages d'emerge est illustrative et peut différer sur votre système. Pour voir les drapeaux USE dont tient compte un paquet donné, exécutez emerge avec les options -p (ou --pretend) et -v (ou --verbose) - l'exemple ci-dessous utilise app-editors/nano :

emerge -pv nano
These are the packages that would be merged, in order:

Calculating dependencies ... done!
Dependency resolution took 2.39 s (backtrack: 0/20).

[binary  N g   ] app-editors/nano-9.2::gentoo  USE="ncurses nls (unicode) -debug -justify -magic -minimal -spell -verify-sig" 694 KiB

Total: 1 package (1 new, 1 binary), Size of downloads: 694 KiB

La ligne USE= répertorie tous les drapeaux du paquet avec leurs valeurs actuelles : un mot sans préfixe est un drapeau activé, un mot précédé d'un moins est désactivé. Le marqueur [binary N g] signifie que le paquet sera pris depuis le dépôt de paquets binaires ; N indique une nouvelle installation, g le dépôt gentoo.

Outre emerge, l'utilitaire equery, issu du paquet app-portage/gentoolkit (installé dans Calculate), affiche les drapeaux actifs d'un paquet :

equery uses [HTML_REMOVED]

Remplacez [HTML_REMOVED] par le nom du paquet voulueuse -i <flag> affiche la description d'un drapeau tirée des fichiers de synthèse du profil - use.desc pour les drapeaux globaux et use.local.desc pour les drapeaux locaux. Vous pouvez aussi l'utiliser pour activer et désactiver un drapeau pour un seul paquet.

Conditions REQUIRED_USE

Pour fonctionner correctement, certains ebuilds exigent ou interdisent certaines combinaisons de drapeaux USE. Les exigences sont écrites sous forme d'un ensemble de conditions dans la variable REQUIRED_USE de l'ebuild ; les bases du travail avec ebuild se trouvent dans la page Utiliser ebuild. Les conditions garantissent que les fonctionnalités et les dépendances sont complètes, afin que la compilation réussisse et que le programme fonctionne comme prévu ; si elles ne sont pas remplies, emerge vous avertit et vous demande de corriger les réglages.

Les conditions se présentent sous la forme suivante :

  • REQUIRED_USE="|| ( foo bar baz )" - au moins un de foo, bar ou baz (vous pouvez en activer plusieurs) ;
  • REQUIRED_USE="^^ ( foo bar baz )" - exactement un de foo, bar ou baz ;
  • REQUIRED_USE="?? ( foo bar baz )" - pas plus d'un de foo, bar ou baz (EAPI 5 et versions ultérieures) ;
  • REQUIRED_USE="foo? ( bar )" - si foo est activé, bar doit l'être aussi ;
  • REQUIRED_USE="foo? ( !bar )" - si foo est activé, bar ne doit pas l'être ;
  • REQUIRED_USE="foo? ( || ( bar baz ) )" - si foo est activé, au moins un de bar et baz doit être activé.

Si l'activation du drapeau dont vous avez besoin exige de démasquer un paquet ou des mots-clés supplémentaires, emerge suggère les lignes manquantes : dans Calculate, l'option --autounmask est incluse dans les options par défaut d'emerge (pour plus de détails, voir la page Fonctionnalités Portage).

Voir aussi