[ << ]
[ < ]
[ 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 |
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é) :
-
Déclaration par défaut dans les fichiers make.defaults de
votre profil ;
-
Déclaration par l'utilisateur dans /etc/make.conf ;
-
Déclaration par l'utilisateur dans
/etc/portage/package.use ;
-
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 : 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
+ + : Adds support/bindings for the Python language
- - static : !!do not set this during bootstrap!! Causes binaries to be
statically linked instead of dynamically
|
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|