Handbook:Parts/Working/USE/cs

Co stojí za myšlenkou voleb USE
Při instalaci Gentoo (nebo jinou distribuci, nebo dokonce jiný operační systém, když jsme u toho), činí uživatelé určité volby v závislosti na prostředí, v němž budou pracovat. Nastavení serveru se liší od nastavení pracovní stanice. Herní stanice se liší od 3D renderovací stanice.

To se týká nejen výběru instalovaných balíčků, ale také funkcí, které by tyto balíčky měly podporovat. Pokud nebudete potřebovat OpenGL, proč by jste se měli obtěžovat s instalací a údržbou OpenGL a sestavovat jeho podporu ve většině balíčků. Pokud nechcete používat KDE, proč by jste se měli obtěžovat kompilováním podpory KDE v balíčcích, když mohou bezchybně fungovat bez ní?

Abychom uživatelům pomohli při rozhodování co nainstalovat/aktivovat, chceme v Gentoo, aby mohli uživatelé své prostředí snadno popsat. Tím nutíme uživatele aby se rozhodli, co opravdu potřebují a usnadňujeme Portage, aby činila potřebná rozhodnutí.

Definice voleb USE
Vítejte ve světě voleb USE. Tyto volby jsou vlastně hesly, které obsahují informaci o funkcích a závislostech do jednotného konceptu. Pokud je nastavena určitá volba USE, Portage zjistí, že je vyždována podpora vybraného hesla. Tím se samozřejmě změní i závislosti balíčku.

Podívejme se na konkrétní případ: heslo. Pokud není toto heslo v proměnné USE, všechny balíčky, které obsahují volitelnou podporu KDE budou sestaveny "bez" podpory KDE. Všechny balíčky, které mají volitelnou závislost na KDE budou instalovány bez instalace knihoven KDE (jako závislostí). Pokud je heslo kde zapnuto, pak budou tyto balíčky sestaveny "s" podporou KDE a knihovny KDE "budou" nainstalovány jako závislosti.

Správným definováním hesel bude systém přizůpsoben přesně podle potřeb uživatele.

Trvalé nastavení voleb USE
Jak bylo dříve uvedeno, volby USE se nastavují v proměnné USE. Abychom uživatelům usnadnili vyhledávání a výběr voleb USE poskytujeme výchozí nastavení USE. Toto nastavení je sadou voleb USE, o nichž si myslíme, že jsou uživateli Gentoo běžně používané. Toto výchozí nastavení je uvedeno v souborech, které jsou součástí zvoleného profilu.

Profil, který systém používá, je označen prostřednictvím odkazu. Každý profil funguje nad jinými profily a výsledek je tedy součtem všech profilů. Nejvyšší profil, je základní profil.

Ke zobrazení momentálně aktivních voleb USE (úplný seznam), použijte :

Jak můžete vidět, už nyní tato proměnná obsahuje mnoho hesel. Neměňte však žádný ze souborů, abyste přizpůsobili proměnnou USE svým osobním požadavkům: změny v těchto souborech budou vráceny jakmile aktualizujete repozitář Gentoo!

Změnu výchozího nastavení lze provést přidáním nebo odebráním hesel do/z proměnné USE. Na globální úrovni to provedete definováním proměnné USE v. V této proměnné lze přidat další požadované volby USE nebo odebrat ty z nich, které už nejsou potřeba. Druhou možnost provedete přidáním znaku minus před dané heslo.

Například k odebrání podpory KDE a Qt a naopak pro přidání podpory LDAP lze definovat následující USE v :

Nastavení voleb USE pro jednotlivé balíčky
Uživatelé někdy chtějí deklarovat určitou volbu USE pro jednu (nebo několik) aplikací, ale ne na úrovni celého systému. Abychom toho dosáhli, upravíme. Soubor většinou bývá jediným souborem, nicméně může jít i o adresář obsahující soubory; podívejte se na níže uvedený tip a pak na  pro více informací o tom, jak využít tento způsob. Následující příklad předpokládá, že je jediný soubor.

Například pro podporu Blu-ray pouze v mediálním přehravači VLC:

Podobně je možné výslovně vypnout volbu USE pro určitou aplikaci. Například vypnutí podpory bzip2 v PHP (ale její ponechání v ostatních balíčcích prostřednictvím deklarace v ):

Nastavení dočasných voleb USE
Někdy potřebují uživatelé nastavit volby USE pouze na chvíli. Namísto dvojí změny (vložení a vymazání změny USE) pouze nastavte USE jako proměnnou prostředí. Pamatujte, že toto nastavení platí pouze pro zadávaný příkaz; znovu nainstalování nebo aktualizace této aplikace (ať už přímo nebo v rámci aktualizace systému) zruší změny vyvolané prostřednictvím (dočasné) definice volby USE.

V následujícím příkladu dočasně odebreme z proměnné USE hodnotu  během instalace SeaMonkey:

Pořadí
Přirozeně je dané určité pořadí priorit jednotlivých voleb pro vyhodnocení nastavení USE. Řazeno podle priorit (první má nejnižší prioritu), se nastavení USE vyhodnotí takto:
 * 1) Výchozí nastavení USE uvedené v souborech  vašeho profilu
 * 2) Uživatelem definované nastavení USE v
 * 3) Uživatelem definované nastavení USE v
 * 4) Uživatelem definované nastavení USE v proměné prostředí

Pro zobrazení konečného nastavení USE, tak jako ho vidí Portage, spusťte. Tím se zobrazí seznam všech relevantních proměnných (včetně proměnné USE ) a jejich obsah tak, jak je znám Portage.

Adaptace celého systému na nové volby USE
Po té, co jste provedli změny voleb USE, by měl být celý systém aktualizován, aby se potřebné změny projevily. To provedete použitím volby  s :

Následně spusťte funkci depclean v Portage, která odebere všechny podmíněné závislosti, které byly nainstalovány na "starý" systém, ale díky novým volbám USE už nejsou potřeba.

Jakmile funkce depclean skončila, může vyžadovat opětovné sestavení aplikací, kterou jsou dynamicky linkovány proti sdíleným objektům poskytovaným odstraněnými balíčky. Portage tyto nezbytné knihovny zachová dokud neprovedete uvedenou akci, aby zabránil znefunkčnění aplikací. Seznam toho, co je třeba znovu sestavit, je uložen v setu. K opětovnému sestavení požadovaných balíčků spusťte:

Pokud se vám tohle všechno povedlo, systém používá nové nastavení voleb USE.

Zobrazení dostupných voleb USE
Vezměmě si jako příklad seamonkey: jaké volby USE lze použít? Zjistit to můžeme použitím s volbami   a  :

není jediným nástrojem, který lze použít. Ve skutečnosti existuje nástroj určený právě k prohledávání informací o balíčcích zvaný, který se nachází v balíčku.

Nyní spusťte s argumentem "uses", čímž zobrazíte volby USE daného balíčku. Například u balíčku gnumeric:

Splnění podmínek REQUIRED_USE
Některé ebuildy požadují nebo zakazují určité kombinace voleb USE, aby mohly správně fungovat. To bývá vyjádřeno sadou podmínek umístěných ve výrazech REQUIRED_USE. Tyto podmínky zajišťují že budou všechny funkce a závislosti kompletní a sestavení proběhne úspěšně a podle očekávání. Pokud kterákoli není splněna, emerge vás upozorní a požádá vás o nápravu problému.

Níže uvádíme pár příkladů výrazů REQUIRED_USE :