Handbook:Parts/Working/USE/fr

À quoi servent les options de la variable USE ?
Lors de l'installation de Gentoo (ou de toute autre distribution) l'utilisateur doit faire des choix qui dépendent de l'environnement dans lequel il travaille. La configuration d'un serveur diffère de la configuration d'une station de travail. Une station dédiée au jeu diffère d'une station dédiée au rendu 3D.

Ceci n'est pas seulement vrai pour déterminer quels paquets installer, mais aussi pour déterminer quelles fonctionnalités un paquet doit prendre en charge. S'il n'y a nul besoin d'OpenGL, pourquoi s'embarrasser à l'installer et à le maintenir et pourquoi compiler la plupart des paquets avec la prise en charge d'OpenGL ? Si quelqu'un ne désire pas utiliser KDE, pourquoi s'embarrasserait-il à compiler les paquets avec la prise en charge de KDE si ces derniers peuvent fonctionner correctement sans ?

Afin d'aider les utilisateurs à décider ce qu'ils doivent installer/activer et ce qu'il ne doivent pas installer/activer, Gentoo leur permet de spécifier leur environnement d'une manière aisée. Cela force l'utilisateur à décider de quoi il a réellement besoin et facilite le travail à Portage pour prendre les décisions utiles.

Définition d'une option de la variable USE
Entrons dans l'univers des options de la variable USE. Une telle option est un mot clé qui représente la prise en charge et les informations de dépendance pour un concept donné. Si quelqu'un définit une option particulière de la variable USE, Portage sait qu'il désire la prise en charge associée à ce mot clé. Bien sûr cela altère aussi les informations de dépendance pour un paquet.

Prenons l'exemple de l'option kde. Si cette option n'est pas donnée pour la variable USE, tous les paquets qui sont capables de prendre KDE en charge de manière optionnelle seront compilés sans la prise en charge de KDE. Tous les paquets qui ont cette prise en charge optionnelle de KDE seront installés sans que soit installées les bibliothèques de KDE (en tant que dépendances). Si l'option kde est définie, ces paquets seront compilés avec la prise en charge de KDE et les bibliothèques de KDE seront installées en tant que dépendances.

En définissant correctement les mots clés, le système pourra être parfaitement adapté au besoin de l'utilisateur.

Les différents types d'options de la variable USE
Il existe deux types d'options de la variable USE : les options globales et les options locales.


 * Une option globale est utilisée par plusieurs paquets, à l'échelle du système. C'est ce que la plupart des gens voit dans la notion d'option de la variable USE.
 * Une option locale  n'est utilisée que par un seul paquet pour des décisions spécifiques.

Une liste des options globales de la variable USE disponibles se trouve à en ligne ou localement dans.

Une liste des options locales de la variable USE disponibles se trouve à en ligne ou localement dans.

Déclarer des options permanentes de la variable USE
Comme nous l'avons indiqué précédemment, toutes les options de la variable USE sont déclarées dans la variable USE. Pour faciliter la recherche et la sélection des options, nous fournissons déjà des options par défaut. Il s'agit d'une collection d'options que nous pensons être couramment utilisées par les utilisateurs de Gentoo. Ces options par défaut sont déclarées dans les fichiers qui font partie du profil choisi.

Le profil que le système considère est pointé par le lien symbolique. Chaque profil se superpose aux autres profils, et le résultat final est la somme de tous les profils. Le profil au dessus de la pile est le profil de base.

To view the currently active USE flags (completely), use :

As can be seen, this variable already contains quite a lot of keywords. Do not alter any file to tailor the USE variable to personal needs though: changes in these file will be undone when the portage tree is updated!

To change this default setting, add or remove keywords to/from the USE variable. This is done globally by defining the USE variable in. In this variable one can add the extra USE flags required, or remove the USE flags that are no longer needed. This latter is done by prefixing the keyword with the minus-sign.

For instance, to remove support for KDE and QT but add support for ldap, the following USE can be defined in :

Declaring USE flags for individual packages
Sometimes users want to declare a certain USE flag for one (or a couple) of applications but not system-wide. To accomplish this, edit. This is usually a single file, but can also be a directory; see  for more information. The following examples assume is a single file.

For instance, to only have berkdb support for mysql:

Similarly it is possible to explicitly disable USE flags for a certain application. For instance, to disable java support in PHP (but have it for all other packages through the USE flag declaration in ):

Declaring temporary USE flags
Sometimes users need to set a USE flag for a brief moment. Instead of editing twice (to do and undo the USE changes) just declare the USE variable as an environment variable. Remember that this setting only applies for the command entered - re-emerging or updating this application (either explicitly or as part of a system update) will undo the changes that were triggered through the (temporary) USE flag definition.

The following example temporarily removes java from the USE setting during the installation of seamonkey:

Precedence
Of course there is a certain precedence on what setting has priority over the USE setting. The precedence for the USE setting is, ordered by priority (first has lowest priority):
 * 1) Default USE setting declared in the  files part of your profile
 * 2) User-defined USE setting in
 * 3) User-defined USE setting in
 * 4) User-defined USE setting as environment variable

To view the final USE setting as seen by Portage, run. This will list all relevant variables (including the USE variable) with their current definition as known to portage.

Adapting the entire system to the new USE flags
After having altered USE flags, the system should be updated to reflect the necessary changes. To do so, use the  option with  :

Next, run portage's depclean to remove the conditional dependencies that were emerged on the "old" system but that have been obsoleted by the new USE flags.

When depclean has finished, run  to rebuild the applications that are dynamically linked against shared objects provided by possibly removed packages. is part of the package; don't forget to emerge it first.

When all this is accomplished, the system is using the new USE flag settings.

Viewing available USE flags
Let's take the example of seamonkey: what USE flags does it listen to? To find out, we use  with the   and   options:

isn't the only tool for this job. In fact, there is a tool dedicated to package information called  which resides in the  package

Now run equery with the uses argument to view the USE flags of a certain package. For instance, for the gnumeric package:

Satisfying REQUIRED_USE conditions
Some ebuilds require or forbid certain combinations of USE flags in order to work properly. This is expressed via a  condition. This condition ensures that all features and dependencies are complete, the build will succeed and perform as expected. If any of these are not met, emerge will alert you and ask you to fix the issue.

Some example conditions are given below.