Gentoo Logo

Avertissement : Ce manuel a été remplacé par une version plus récente et n'est plus maintenu.


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


2. La variable USE

Table des matières :

2.a. Que sont les paramètres USE ?

Les notions sous-jacentes aux paramètres USE

Losque vous installez Gentoo (ou n'importe quelle autre distribution, voire système d'exploitation), vous faites des choix qui dépendent de l'environnement dans lequel vous travaillez. La configuration d'un serveur est différente de celle d'une station de travail. Une machine destinée aux jeux diffère d'une station de travail pour du rendu 3D.

Cela s'applique non seulement au choix des paquets que vous comptez installer, mais aussi aux fonctionnalités que chaque paquet devrait supporter. Si vous n'avez pas besoin d'OpenGL, pourquoi prendre la peine d'installer OpenGL et de construire la plupart de vos paquets avec support pour OpenGL ? Si vous ne souhaitez pas utiliser KDE, pourquoi compiler des paquets avec le support KDE alors qu'ils fonctionneraient parfaitement sans ce support ?

Pour aider les utilisateurs à déterminer ce qu'ils veulent installer ou activer, nous souhaitions que l'utilisateur spécifie son environnement de manière simple. Il est ainsi obligé de décider ce qu'il veut vraiment, et cela facilite la tâche de Portage, notre gestionnaire de paquets, pour prendre les décisions utiles.

Définition des paramètres USE

C'est ici qu'interviennent les paramètres USE. Un tel paramètre est un mot-clé qui définit le support et les dépendances pour un concept donné. Si vous définissez un paramètre USE donné, Portage saura que vous voulez avoir le support correspondant au mot-clé choisi. Bien entendu, cela affecte aussi les dépendances des paquets.

Considérons un exemple spécifique : le mot-clé kde. Si vous n'avez pas ce mot-clé dans votre variable USE, tous les paquets qui offrent un support optionnel pour KDE seront compilés sans ce support. Tous les paquets qui possèdent des dépendances KDE optionnelles seront installés sans installer les bibliothèques KDE (en tant que dépendances). Si vous avez le mot-clé kde, alors ces paquets seront compilés avec le support KDE et les bibliothèques KDE seront installées en tant que dépendances.

Définir correctement ces mots-clés vous donnera finalement un système adapté spécifiquement à vos besoins.

Quels sont les paramètres USE disponibles ?

On distingue deux types de paramètres USE : les paramètres globaux et locaux.

  • Un paramètre USE global est utilisé par plusieurs paquets dans l'ensemble du système. C'est ce que la plupart des gens considèrent comme les paramètres USE.
  • Un paramètre USE local n'est utilisé que par un seul paquet et n'est utilisé que pour des décisions spécifiques à ce paquet.

Une liste des paramètres USE peut être trouvée en ligne ou localement dans /usr/portage/profiles/use.desc. Un court extrait (très incomplet) :

Exemple de code 1.1 : Court extrait des paramètres USE disponibles

gtk     - Adds support for x11-libs/gtk+ (The GIMP Toolkit)
gtk2    - Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both.
gtkhtml - Adds support for gnome-extra/gtkhtml
guile   - Adds support for dev-util/guile (interpreter for Scheme)
icc     - Use the Intel C++ Compiler if the package supports it
icc-pgo - Enable PGO data generation or use when use icc.
imap    - Adds support for IMAP

La liste des paramètres USE locaux se trouve dans le fichier /usr/portage/profiles/use.local.desc.

2.b. Utiliser les paramètres USE

Déclarer des paramètres USE permanents

Nous allons maintenant vous expliquer comment déclarer des paramètres USE, en espérant que vous soyez convaincu de leur importance.

Comme mentionné plus haut, tous les paramètres USE sont déclarés dans la variable USE. Pour permettre aux utilisateurs de trouver et choisir facilement les paramètres USE, nous fournissons une configuration par défaut de USE. Cette configuration est un ensemble de paramètres USE dont nous pensons qu'ils sont communément employés par les utilisateurs de Gentoo. Cette configuration par défaut est déclarée dans le fichier /etc/make.profile/make.defaults. Jetons-y un coup d'oeil :

Exemple de code 2.1 : Variable USE de /etc/make.profile/make.defaults sur un système x86

USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm
     gtk gtk2 imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses
     nls oggvorbis opengl pam pdflib png python qt quicktime readline sdl
     slang spell ssl svga tcpd truetype X xml2 xmms xv zlib"

Comme vous pouvez le voir, cette variable contient déjà un bon nombre de mots-clés. Ne modifiez pas le fichier /etc/make.profile/make.defaults pour adapter la variable USE à vos besoins : les changements effectués dans ce fichier seront effacés lorsque vous mettrez Portage à jour !

Pour modifier cette configuration par défaut, vous devrez ajouter ou enlever des mots-clés dans la variable USE. Cela est fait de manière globale en définissant la variable USE dans /etc/make.conf. Dans cette variable, vous ajouterez les paramètres USE que vous désirez et enlèverez ceux que vous ne voulez pas. Cette dernière action est réalisée en préfixant le mot-clé d'un signe moins ("-").

Par exemple, pour enlever le support pour KDE et QT, et ajouter le support pour ldap, vous pourriez définir USE comme suit dans /etc/make.conf :

Exemple de code 2.2 : Exemple de configuration USE dans /etc/make.conf

USE="-kde -qt ldap"

Déclarer des paramètres USE spécifiques à des paquets

Parfois, vous voudrez déclarer certains paramètres USE pour une ou plusieurs applications particulières mais pas pour l'ensemble du système. Pour cela, vous devez créer le répertoire /etc/portage (s'il n'existe pas déjà) et éditer le fichier /etc/portage/package.use.

Par exemple, si vous ne voulez pas du support global berkdb mais si vous le voulez tout de même pour mysql, vous devrez y ajouter la ligne suivante :

Exemple de code 2.3 : Exemple de /etc/portage/package.use

dev-db/mysql berkdb

Vous pouvez également désactiver explicitement un paramètre USE pour une application particulière. Par exemple, si vous ne voulez pas du support java dans PHP :

Exemple de code 2.4 : Second exemple de /etc/portage/package.use

dev-php/php -java

Déclarer des paramètres USE temporaires

Il peut arriver que vous ne souhaitiez définir un paramètre USE donné qu'en une seule occasion. Plutôt qu'éditer /etc/make.conf deux fois (pour faire puis défaire les changements), vous pouvez simplement déclarer USE comme une variable d'environnement. Gardez toutefois à l'esprit que cette modification de l'environnement sera probablement perdue lorsque vous réinstallerez ou mettrez à jour cette application (soit explicitement, soit lors d'une mise à jour du système).

Par exemple, nous allons retirer temporairement le support java de notre configuration USE pendant l'installation de mozilla.

Exemple de code 2.5 : Utilisation de USE comme une variable d'environnement

# USE="-java" emerge mozilla

Héritage des paramètres USE

Certains paquets ne se contentent pas de lire les paramètres USE, mais en définissent eux-mêmes. Lorsque vous installez un tel paquet, le paramètre USE qu'il fournit est ajouté à votre configuration USE. Pour voir la liste des paquets qui fournissent un nouveau paramètre USE, consultez /etc/make.profile/use.defaults :

Exemple de code 2.6 : Extrait de /etc/make.profile/use.defaults

gnome           gnome-base/gnome
gtk             x11-libs/gtk+
qt              x11-libs/qt
kde             kde-base/kdebase
motif           x11-libs/openmotif

Ordre de priorité

Les différentes configurations de USE se conforment évidemment à un certain ordre de priorité. Vous ne souhaitez sans doute pas déclarer USE="-java" pour vous rendre compte après coup que java était déclaré malgré tout. Les priorités dans les déclarations USE sont ordonnées comme suit (la première déclaration a la plus faible priorité) :

  1. Déclaration par défaut dans /etc/make.profile/make.defaults
  2. Déclaration héritée si un paquet de /etc/make.profile/use.defaults est installé
  3. Déclaration par l'utilisateur dans /etc/make.conf
  4. Déclaration par l'utilisateur dans /etc/portage/package.use
  5. Déclaration par l'utilisateur comme une variable d'environnement

Pour voir la configuration finale de USE telle qu'elle est vue par Portage, exécutez emerge info. Cela listera toutes les variables significatives (dont la variable USE) avec leur contenu tel qu'il est vu par Portage.

Exemple de code 2.7 : Exécuter emerge info

# emerge info

Reconfigurer votre système pour tenir compte des options USE

Si vous avez modifié vos options de la variable USE et que vous voulez reconfigurer votre système pour tenir compte de ces nouvelles options, utilisez l'option --newuse :

Exemple de code 2.8 : Recompiler tout le système

# emerge --update --deep --newuse world

Ensuite, utilisez l'option depclean pour supprimer les dépendances conditionnelles qui ne seraient plus utilisées.

Attention : Exécuter emerge depclean est une opération risquée qui ne devrait pas être lancée à la légère. Vérifiez bien que la liste des paquets qui vont être supprimés ne contient pas de paquet dont vous avez encore besoin. Dans l'exemple ci-dessous, nous utilisons l'option -p pour afficher la liste sans rien supprimer.

Exemple de code 2.9 : Supprimer les paquets inutiles

# emerge -p depclean

Quand cette opération est terminée, lancez revdep-rebuild pour recompiler les applications qui avaient été liées dynamiquement avec les paquets que vous venez de supprimer. La commande revdep-rebuild fait partie du paquet gentoolkit ; n'oubliez pas de l'installer.

2.c. Paramètres USE spécifiques à un paquet

Savoir quels paramètres USE influencent un paquet

Prenons l'exemple de mozilla : à quels paramètres USE est-il sensible ? Pour le savoir, nous utilisons emerge avec les options --pretend et --verbose :

Exemple de code 3.1 : Afficher les paramètres USE qui influencent un paquet

# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap
+gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail
-moznocompose -moznoxft

emerge n'est pas le seul outil utilisable à cette fin. En effet, nous disposons d'un outil dédié pour obtenir des informations sur les paquets. Il s'appelle etcat et appartient au paquet gentoolkit. Commencez par installer gentoolkit :

Exemple de code 3.2 : Installer gentoolkit

# emerge gentoolkit

Exécutez maintenant etcat avec l'argument uses pour afficher les paramètres USE d'un paquet donné. Par exemple, pour le paquet gnumeric :

Exemple de code 3.3 : Utiliser etcat pour afficher les paramètres USE

# etcat uses gnumeric
[ Colour Code : set unset ]
[ Legend      : (U) Col 1 - Current USE flags        ]
[             : (I) Col 2 - Installed With USE flags ]

 U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
 - - libgda  : Adds GNU Data Access (CORBA wrapper) support for gnumeric
 - - gnomedb : unknown
 + + python  : Adds support/bindings for the Python language
 + + bonobo  : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)

[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Voir tout

Dernière mise à jour le 9 novembre 2004

Cette traduction n'est plus maintenue

Résumé : Les options de la variable USE sont très importantes dans Gentoo. Ce chapitre décrit comment les utiliser et explique en quoi elles influencent votre système.

Sven Vermeulen
Auteur

Daniel Robbins
Auteur

Chris Houser
Auteur

Jerry Alexandratos
Auteur

Seemant Kulleen
Développeur Gentoo x86

Tavis Ormandy
Développeur Gentoo Alpha

Jason Huebel
Développeur Gentoo AMD64

Guy Martin
Développeur Gentoo HPPA

Pieter Van den Abeele
Développeur Gentoo PPC

Joe Kallar
Développeur Gentoo SPARC

John P. Davis
Correcteur

Pierre-Henri Jondot
Correcteur

Eric Stockbridge
Correcteur

Rajiv Manglani
Correcteur

Jungmin Seo
Correcteur

Stoyan Zhekov
Correcteur

Jared Hudson
Correcteur

Colin Morey
Correcteur

Jorge Paulo
Correcteur

Carl Anderson
Correcteur

Jon Portnoy
Correcteur

Zack Gilburd
Correcteur

Jack Morgan
Correcteur

Benny Chuang
Correcteur

Erwin
Correcteur

Joshua Kinard
Correcteur

Tobias Scherbaum
Correcteur

Grant Goodyear
Relecteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Lars Weiler
Contributeur

Xavier Neys
Traducteur responsable

Camille Huot
Traducteur responsable

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.