Gentoo Logo

[ << ] [ < ] [ 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 les paramètres 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.

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 les fichiers make.defaults de votre profil.

Le profil de votre système est défini par le fichier vers lequel pointe le lien symbolique /etc/make.profile. Différents profils s'empilent les uns sur les autres. Le profil le plus haut est base (/usr/portage/profiles/base).

Voyons les valeurs par défaut d'un profil 2004.3 :

Exemple de code 1 : Variable USE après cumul d'un profil 2004.3

(Cet exemple est le résultat du cumul des options définies dans base, default-linux,
default-linux/x86 et default-linux/x86/2004.3)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
     foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
     mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
     quicktime readline sdl 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 en aucun cas les fichiers 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 : Exemple de configuration USE dans /etc/make.conf

USE="-kde -qt3 -qt4 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 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 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 seamonkey.

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

# USE="-java" emerge seamonkey

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 est déclaré malgré tout à cause d'une valeur par défaut qui a priorité sur votre définition. 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 les fichiers make.defaults de votre profil ;
  2. Déclaration par l'utilisateur dans /etc/make.conf ;
  3. Déclaration par l'utilisateur dans /etc/portage/package.use ;
  4. 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 6 : 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 7 : 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 8 : 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 seamonkey : à quels paramètres USE est-il sensible ? Pour le savoir, nous utilisons emerge avec les options --pretend et --verbose :

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

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

Calculating dependencies ...done!
[ebuild   R   ] www-client/seamonkey-1.0.7  USE="crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint" 0 kB

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 equery et appartient au paquet gentoolkit. Commencez par installer gentoolkit :

Exemple de code 10 : Installer gentoolkit

# emerge gentoolkit

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

Exemple de code 11 : Utiliser equery pour afficher les paramètres USE

# equery uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend        : Left column  (U) - USE flags from make.conf  ]
[               : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
 U I
- - debug   : Tells configure and the makefiles to build for debugging.
                     Effects vary across packages, but generally it will at
                     least add -g to CFLAGS.  Remember to set FEATURES=nostrip
                     too 
- - gnome   : Adds GNOME support
+ + python   : Adds support/bindings for the Python language
- - static   : !!do not set this during bootstrap!! Causes binaries to be
                     statically linked instead of dynamically

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


Imprimer

Dernière mise à jour le 2 juin 2007

Une version originale plus récente datée du 7 juillet 2007 existe.

Résumé : Les options USE sont une part très importante de Gentoo. Dans ce chapitre, vous apprendrez à utiliser ces options et à comprendre comment ces options interagissent avec votre système.

Sven Vermeulen
Auteur

Grant Goodyear
Auteur

Roy Marples
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

Joshua Saddler
Correcteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Lars Weiler
Contributeur

Xavier Neys
Correcteur, traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

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