Při instalaci Gentoo (nebo jakékoli jiné distribuce, a dokonce i jakéhokoli operačního systému) činíte volby závisející na prostředí, se kterým pracujete. Nastavení pro server je jiné než nastavení pro pracovní stanici. Stanice určená pro hry je jiná než stanice pro renderování 3D grafiky.
Tyto volby se nevztahují jenom na výběr balíčků, ale týkají se i vlastností, které by měl daný balíček poskytovat. Nebudete-li používat OpenGL, nač ho instalovat a proč aktivovat jeho podporu v jiných balíčcích? Nechcete-li používat KDE, proč byste měli aktivovat jeho podporu v balíčcích, které bezchybně fungují i bez ní?
Abychom uživatelům usnadnili rozhodování co aktivovat a co ne, chceme od nich, aby jednoduše specifikovali své prostředí. To je přiměje k tomu, že si rozmyslí, co vlastně potřebují, a umožní Portage, našemu systému pro správu balíčků, užitečné rozhodování.
Vítejte do USE proměnných. Tyto proměnné (USE flags) jsou klíčová slova obsahující podporu a informace o závislosti pro konkrétní oblast. Když definujete nějakou USE proměnnou, dáváte tím Portage vědět, že chcete podporu pro danou funkci. To samozřejmě ovlivní závislosti balíčků.
Pojďme se podívat na konkrétní příklad - klíčové slovo
Správným nastavením této proměnné dostanete systém ušitý na míru Vaším potřebám.
Jsou dva druhy USE proměnných -
Seznam dostupných globálních USE proměnných je k dispozici
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
Seznam dostupných lokálních USE proměnných je v nainstalovaném systému
dostupný v souboru
Doufejme, že jste již přesvědčeni o důležitosti USE proměnných; nyní Vám ukážeme, jak je používat.
Jak jsme již zmínili, USE flagy se nastavují v proměnné
Profil, kterým se Váš systém řídí, je určen symbolickým odkazem
Podívejme se na výchozí nastavení:
(Tento příklad je výsledek nastavení z profilů base, default-linux, default-linux/x86 a default-linux/x86/2004.3) USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77 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 spell ssl svga tcpd truetype X xml2 xmms xv zlib"
Jak vidíte, poměrně hodně klíčových slov je již aktivních. Neměňte
žádná nastavení v souboru
Chcete-li změnit tato výchozí nastavení, musíte změnit proměnnou USE. Celý
systém ovlivní její nastavení v souboru
Například pro odstranění podpory KDE a QT a zároveň aktivaci podpory pro LDAP
nastavte
USE="-kde -qt ldap"
Někdy je potřeba nastavit USE proměnnou pro jeden (nebo více) balíčků, avšak ne
pro celý systém. V takovém případě musíte vytvořit adresář
Například nechcete-li mít většinu systému zkompilovanou s podporou
dev-db/mysql berkdb
Je také možné danou USE proměnnou pro daný balíček
dev-php/php -java
Někdy můžete chtít nastavit určitou USE proměnnou pouze jednou. Namísto
dvojnásobné editace
Jako příklad dočasně zakážeme Javu během instalace Mozilly.
# USE="-java" emerge mozilla
Jsou-li nainstalovány určité balíčky, budou automaticky aktivovány i další USE
proměnné, pokud je ovšem výslovně nezakážete. Pro zobrazení seznamu balíčků,
které se takto chovají, se podívejte do souboru
gnome gnome-base/gnome gtk x11-libs/gtk+ qt x11-libs/qt kde kde-base/kdebase motif x11-libs/openmotif
Nastavení USE proměnných se řídí určitými pravidly o přednosti. Například může
být zbytečné deklarovat
Pro zobrazení výsledných nastavení USE proměnných spusťte
# emerge --info
Změnili-li jste nastavení USE proměnných a přejete-li si, aby se tyto změny
promítly do systému, použijte volbu
# emerge --update --deep --newuse world
Nyní spusťte depclean (součást Portage), který odstraní závislosti, které již nejsou kvůli změněným USE proměnným potřeba.
# emerge -p --depclean
Až depclean skončí, spusťte
# revdep-rebuild
Až toto vše proběhne, bude Váš systém používat nová nastavení USE proměnných.
Podívejme se kupříkladu na Mozillu - jaké USE proměnné ji ovlivní? Pro jejich
zobrazení předejte
# 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 gentoolkit
Nyní spusťte
# equery uses gnumeric [ Colour Code : setunset ] [ 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)