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 options de la variable USE ?

Les notions sous-jacentes aux options de la variable 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 options de la variable USE

C'est ici qu'interviennent les options de la variable USE. Une telle option est un mot-clé qui définit le support et les dépendances pour un concept donné. Si vous définissez une option donnée de la variable USE, 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 options de la variable USE disponibles ?

On distingue deux types d'options de la variable USE : les options globales et les options locales.

  • Une option globale de la variable USE est utilisée par plusieurs paquets dans l'ensemble du système. C'est ce que la plupart des gens considèrent comme les options de la variable USE.
  • Une option locale de la variable USE n'est utilisée que par un seul paquet et n'est utilisée que pour des décisions spécifiques à ce paquet.

Une liste des options de la variable USE peut être trouvée en ligne ou localement dans /usr/portage/profiles/use.local.desc.

2.b. Utiliser les options de la variable USE

Déclarer des options permanentes de la variable USE

Nous allons maintenant vous expliquer comment déclarer des options de la variable USE, en espérant que vous soyez convaincu de leur importance.

Comme mentionné plus haut, toutes les options de la variable USE sont déclarées dans la variable USE. Pour permettre aux utilisateurs de trouver et choisir facilement les options de la variable USE, nous fournissons une configuration par défaut de USE. Cette configuration est un ensemble d'options de la variable USE dont nous pensons qu'elles sont communément employées 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 13.0 :

Exemple de code 2.1 : variable USE après cumul d'un profil 13.0

(Cet exemple est le résultat du cumul des options définies dans base, default-linux,
default-linux/x86 et default-linux/x86/13.0)
USE="a52 aac acpi alsa branding cairo cdr dbus dts dvd dvdr emboss encode exif
fam firefox flac gif gpm gtk hal jpeg lcms ldap libnotify mad mikmod mng mp3
mp4 mpeg ogg opengl pango pdf png ppds qt3support qt4 sdl spell
startup-notification svg tiff truetype vorbis unicode usb X xcb x264 xml xv
xvid"

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/portage/make.conf. Dans cette variable, vous ajouterez les options de la variable USE que vous désirez et enlèverez celles dont 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/portage/make.conf :

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

USE="-kde -qt3 -qt4 ldap"

Déclarer des options de la variable USE spécifiques à des paquets

Parfois, vous voudrez déclarer certaines options de la variable 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 /etc/portage/package.use. Ce n'est souvent qu'un simple fichier, mais il peut aussi être un répertoire ; lisez man portage pour plus d'informations. Les exemples suivants supposent que package.use est un simple fichier.

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 une option de la variable 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 options temporaires de la variable USE

Il peut arriver que vous ne souhaitiez définir une option donnée de la variable USE qu'en une seule occasion. Plutôt qu'éditer /etc/portage/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 2.5 : utilisation de USE comme une variable d'environnement

# USE="-java" emerge seamonkey

Ordre de priorité

Les différentes configurations de la variable 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 des options de la variable 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/portage/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 la variable 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.6 : exécuter emerge --info

# emerge --info

Reconfigurer votre système pour tenir compte d'une mise à jour des options de la variable 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  d'emerge:

Exemple de code 2.7 : recompiler tout le système

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

Ensuite, utilisez l'option depclean pour supprimer les dépendances conditionnelles qui ont été rendues obsolètes par les nouvelles options de la variable USE.

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.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.

Exemple de code 2.9 : exécuter revdep-rebuild

# revdep-rebuild

Une fois tout ceci accompli, le système tient compte des nouvelles options de la variable USE.

2.c. Options de la variable USE spécifiques à un paquet

Savoir quelles options de la variable USE influencent un paquet

Prenons l'exemple de seamonkey : à quelles options de la variable USE est-il sensible ? Pour le savoir, nous utilisons emerge avec les options --pretend et --verbose :

Exemple de code 3.1 : afficher les options de la variable 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 3.2 : installer gentoolkit

# emerge gentoolkit

Exécutez maintenant equery avec l'argument uses pour afficher les options de la variable USE d'un paquet donné. Par exemple, pour le paquet gnumeric :

Exemple de code 3.3 : utiliser equery pour afficher les options de la variable USE

# equery --nocolor 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  : Enable extra debug codepaths, like asserts and extra output.
              If you want to get meaningful backtraces see
              http://www.gentoo.org/proj/en/qa/backtraces.xml .
 + + 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

Voir tout

Dernière mise à jour le 17 décembre 2013

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

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

Lars Weiler
Correcteur

Jochen Maes
Correcteur

Grant Goodyear
Relecteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Xavier Neys
Correcteur, traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Clément Varaldi
Traducteur

Donate to support our development efforts.

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