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 quoi installer/activer ou pas, Gentoo 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.

Take a look at a specific example: the  keyword. If this keyword is not in the USE variable, all packages that have optional KDE support will be compiled without KDE support. All packages that have an optional KDE dependency will be installed without installing the KDE libraries (as dependency). When the kde keyword is defined, then those packages will be compiled with KDE support, and the KDE libraries will be installed as dependency.

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.


 * A global USE flag is used by several packages, system-wide. This is what most people see as USE flags. A list of available global USE flags can be found on the main site or locally in the file.
 * A local USE flag is used by a single package to make package-specific decisions. A list of available local USE flags can be found on the main site or locally in the file.

Déclarer des options permanentes de la variable USE
As previously mentioned, all USE flags are declared inside the USE variable. To make it easy for users to search and pick USE flags, we already provide a default USE setting. This setting is a collection of USE flags we think are commonly used by the Gentoo users. This default setting is declared in the files that are part of the selected profile.

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.

Par exemple, pour retirer la prise en charge de KDE et de QT mais en ajoutant la prise en charge de ldap, on peut définir la variable USE suivante dans :

Declarer des options de la variable USE pour certains paquets seulement
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.

Par exemple, pour avoir la prise en charge de berkdb par mysql:

De la même manière, il est possible de désactiver explicitement une option de la variable USE pour une application donnée. Par exemple, pour retirer la prise in charge de java dans PHP (mais l'avoir pour tous les autres paquets via la déclaration des options de USE dans ):

Déclarer des options temporaires de la variable USE
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.

L'exempe suivant retire la prise en charge de java des options de USE pendant l'installation de seamonkey.

Priorité
Bien sûr, les différents réglages de la variable USE n'ont pas tous la même priorité. Les règles de priorité, classées de la plus faible à la plus forte sont:
 * 1) Les réglages par défaut déclarés dans les fichiers de votre profil
 * 2) Les réglages de USE définis par l'utilisateur dans
 * 3) Les réglages de USE définis par l'utilisateur dans
 * 4) Les réglages de USE définis par l'utilisateur en tant que variables d'environnement

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.

Adapter le système complet aux nouvelles options de la variable USE
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.

En fin de compte, le système utilise maintenant les nouvelles options de la variable USE.

Lister les options disponibles
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 with the uses argument to view the USE flags of a certain package. For instance, for the gnumeric package:

Satisfaire les conditions imposées par l'expression REQUIRED_USE
Some ebuilds require or forbid certain combinations of USE flags in order to work properly. This is expressed via a set of conditions placed in a REQUIRED_USE expression. This conditions ensure that all features and dependencies are complete and that 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 examples of this REQUIRED_USE  expression are given below: