Gentoo Logo

Upozornění : Tento dokument již neplatí a není udržován.


[ << ] [ < ] [ Domů ] [ > ] [ >> ]


2. USE proměnné

Obsah:

2.a. Co jsou USE proměnné?

Proč USE proměnné

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

Definice USE proměnné

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 kde. Pokud jej nemáte v proměnné USE, všechny balíčky, které mají volitelnou podporu pro KDE budou zkompilovány bez ní. Balíčky, které mají KDE uvedeno jako volitelnou závislost, nebudou instalovat knihovny z KDE. Naopak přidáte-li kde do USE proměnné, budou tyto balíčky zkompilovány s podporou KDE a knihovny z tohoto prostředí budou nainstalovány jako závislosti.

Správným nastavením této proměnné dostanete systém ušitý na míru Vaším potřebám.

Jaké USE proměnné existují?

Jsou dva druhy USE proměnných - globální a lokální.

  • Globální USE proměnnou používá více balíčků z celého systému. Tento druh USE proměnných je to, čemu většina lidí říká USE proměnné.
  • Lokální USE proměnné jsou používané jedním balíčkem pro rozhodnutí, která se týkají pouze jej samotného.

Seznam dostupných globálních USE proměnných je k dispozici na webu nebo na Vašem systému v souboru /usr/portage/profiles/use.desc.

Seznam dostupných lokálních USE proměnných je v nainstalovaném systému dostupný v souboru /usr/portage/profiles/use.local.desc.

2.b. Používáme USE proměnné

Deklarace stálých USE proměnných

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é USE. Abychom usnadnili uživatelům život, existují výchozí nastavení USE, která reflektují to, co si myslíme, že bude používat většina uživatelů Gentoo Linuxu. Tato výchozí nastavení jsou deklarována v souboru make.defaults a jsou součást profilu.

Profil, kterým se Váš systém řídí, je určen symbolickým odkazem /etc/make.profile. Konečné nastavení je kombinací celého stromu profilů, z nichž hlavní se jmenuje base (/usr/portage/profiles/base).

Podívejme se na výchozí nastavení pro profil 2004.3:

Výpis kódu 2.1: Celkové nastavení proměnné USE pro profil 2004.3

(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 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 make.defaults - změny v tomto souboru budou potlačeny při aktualizaci Portage.

Chcete-li změnit tato výchozí nastavení, musíte změnit proměnnou USE. Celý systém ovlivní její nastavení v souboru /etc/make.conf. USE proměnné můžete přidávat i odebírat; odstranění se provádí přidáním znaménka mínus ("-") před dané klíčové slovo.

Například pro odstranění podpory KDE a QT a zároveň aktivaci podpory pro LDAP nastavte USE v souboru /etc/make.conf takto:

Výpis kódu 2.2: Ukázka nastavení USE proměnné v /etc/make.conf

USE="-kde -qt ldap"

Individuální nastavení USE proměnných

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ář /etc/portage (pokud ještě neexistuje) a použít soubor /etc/portage/package.use.

Například nechcete-li mít většinu systému zkompilovanou s podporou berkdb, avšak chcete ji používat v mysql, měli byste přidat:

Výpis kódu 2.3: Ukázka /etc/portage/package.use

dev-db/mysql berkdb

Je také možné danou USE proměnnou pro daný balíček zakázat. Například pokud nechcete mít aktivovanou java v PHP:

Výpis kódu 2.4: Druhý příklad /etc/portage/package.use

dev-php/php -java

Dočasná nastavení USE proměnných

Někdy můžete chtít nastavit určitou USE proměnnou pouze jednou. Namísto dvojnásobné editace /etc/make.conf (nejprve změna nastavení a poté uvedení do původního stavu) můžete použít USE jako proměnnou prostředí. Avšak pamatujte, že při aktualizaci dané aplikace (ať už explicitně jí samotné a nebo při aktualizaci systému) o svá nastavení přijdete!

Jako příklad dočasně zakážeme Javu během instalace Mozilly.

Výpis kódu 2.5: Použití USE jako proměnné prostředí

# USE="-java" emerge mozilla

Přednosti

Nastavení USE proměnných se řídí určitými pravidly o přednosti. Například může být zbytečné deklarovat USE="-java" jen abyste zjistili, že je definovaná jinde a s vyšší prioritou. USE proměnné jsou zpracovávány v tomto pořadí (počínaje nejnižší prioritou):

  1. výchozí nastavení USE deklarované v souboru make.defaults uvnitř profilu
  2. uživatelem definovaná nastavení v /etc/make.conf
  3. uživatelem definovaná nastavení v /etc/portage/package.use
  4. uživatelem definovaná nastavení předaná jako proměnná prostředí

Pro zobrazení výsledných nastavení USE proměnných spusťte emerge --info; tato volba zajistí zobrazení všech proměnných, které Portage použije, včetně USE.

Výpis kódu 2.6: Zobrazení emerge --info

# emerge --info

Promítnutí změn USE proměnných do systému

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 --newuse příkazu emerge:

Výpis kódu 2.7: Rebuild systému

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

Varování: Spouštění emerge --depclean je nebezpečná operace a měli byste na ní dát pozor. Překontrolujte, zda jsou "zbytečné" balíčky opravdu zbytečné, abyste si neodstranili něco, co potřebujete. V následujícím příkladu přidáme parametr -p, který zajistí, že depclean pouze vypíše seznam balíčků, aniž by je odstranil.

Výpis kódu 2.8: Odstranění nepotřebných balíčků

# emerge -p --depclean

Až depclean skončí, spusťte revdep-rebuild pro nový překlad aplikací, jež jsou dynamicky linkované se sdílenými objekty patřícími možná odstraněným balíčkům. revdep-rebuild je součástí balíčku gentoolkit; nezapomeňte si ho nejprve nainstalovat.

Výpis kódu 2.9: Spuštění revdep-rebuild

# revdep-rebuild

Až toto vše proběhne, bude Váš systém používat nová nastavení USE proměnných.

2.c. USE proměnné pro specifické pro balíčky

Zobrazení dostupných USE proměnných

Podívejme se kupříkladu na Mozillu - jaké USE proměnné ji ovlivní? Pro jejich zobrazení předejte emerge parametry --pretend a --verbose:

Výpis kódu 3.1: Zobrazení použitých USE proměnných

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

Calculating dependencies ...done!
[ebuild   R   ] www-client/mozilla-1.7.12-r2  USE="crypt gnome java mozsvg ssl
truetype xprint -debug -ipv6 -ldap -mozcalendar -mozdevelop -moznocompose
-moznoirc -moznomail -moznoxft -postgres -xinerama" 0 kB

emerge není jediný nástroj vhodný k tomuto účelu. Ve skutečnosti existuje nástroj pro informace o balíčcích jménem equery, který je opět součástí balíčku gentoolkit. Nejprve jej tedy nainstalujme:

Výpis kódu 3.2: Instalace gentoolkitu

# emerge gentoolkit

Nyní spusťte equery s argumentem uses, což zobrazí přehled USE proměnných používaných daným balíčkem. Kupříkladu pro balíček gnumeric:

Výpis kódu 3.3: Použití equery pro přehled aktivních USE proměnných

# equery 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)

[ << ] [ < ] [ Domů ] [ > ] [ >> ]


Tisk

Zobrazit všechny

Aktualizace: 7. září 2006

Tento překlad již není udržován

Shrnutí: USE proměnné jsou velmi důležitou stránkou Gentoo. V této kapitole se s nimi naučíte pracovat a porozumíte tomu, jak ovlivňují Váš systém.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 vývojář

Tavis Ormandy
Gentoo Alpha vývojář

Jason Huebel
Gentoo AMD64 vývojář

Guy Martin
Gentoo HPPA vývojář

Pieter Van den Abeele
Gentoo PPC vývojář

Joe Kallar
Gentoo SPARC vývojář

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Joshua Saddler
Editor

Grant Goodyear
Korektor

Gerald J. Normandin Jr.
Korektor

Donnie Berkholz
Korektor

Ken Nowack
Korektor

Lars Weiler
Přispěvatel

Jan Kundrát
Překladatel

Jan Nárovec
Překladatel

Martin Tesař
Překladatel

Mirek Dvořák
Korektor

Adam Kudrna
Korektor

Donate to support our development efforts.

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