Handbook:Parts/Working/USE/cs

Idea přepínačů USE
Když instalujete Gentoo (nebo jinou distribuci, nebo dokonce jiný operační systém, když jsme u toho), činí uživatelé volby v závislosti na prostředí v němž budou pracovat. Podmínky pro server se liší od púodmínek pracovní stanice. Herní stanice se liší od stanice pro 3D rendering.

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 se měl někdo obtěžovat s instalací a údržbou OpenGL a sestavovat podporu OpenGL ve většině balíčků. Pokud někdo nechce používat KDE, proč by se měl obtěžovat kompilováním balíčků s podporou KDE, když tyto balíčky mohou bezchybně fungovat bez ní?

Abychom uživatelům pomohli rozhodnout se co nainstalovat/aktivovat, Gentoo chce po uživatelích, aby své prostředí jednoduchým způsobem specifikovali. Tím nutíme uživatele aby se rozhodli, co opravdu potřebují a usnadňujeme Portage, aby činil užitečná rozhodnutí.

Definice přepínače USE
Vítejte ve světě přepínačů USE. Každý takový přepínač je klíčovým slovem, které zahrnuje informaci o podpoře a závislostech do jednotného konceptu. Pokud kdokoli nastaví určitý přepínač USE, Portage zjistí, že dotyčný chce podporovat vybrané klíčové slovo. Tím se samozřejmě změní i informace balíčku ohledně závislostí.

Podívejme se na konkrétní případ: klíčové slovo. Pokud není toto klíčové slovo 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 KDE závislost budou instalovány bez instalace knihoven KDE (jako závislostí). Pokud je klíčové slovo kde nastaveno, pak budou tyto balíčky sestaveny "s" podporou KDE a knihovny KDE "budou" nainstalovány jako závislosti.

Správným definováním klíčových slov bude systém přizůpsoben přesně podle uživatelových potřeb.

Jaké přepínaše USE existují
Máme dva druhy přepínačů USE: globální a lokální přepínače USE.


 * "globální" přepínače USE jsou použity ve více balíčcích, v celém systému. Takto většina lidí vnímá přepínače USE. Seznam dostupných globálních přepínačů USE lze nalézt v souboru.
 * "lokální" přepínač USE jsou použity v jednotlivých balíčcích kvůli volbě jedinečné pro dané balíčky. Seznam dostupných lokálních přepínačů USE lze nalézt na hlavním webu nebo lokálně v souboru.

Nastavení přepínačů USE natrvalo
Jak bylo dříve uvedeno, všechny přepínače USE se nastavují v proměnné USE. Abychom uživatelům usnadnili hledání a výběr přepínačů USE, poskytujeme výchozí nastavení USE. Toto nastavení je sbírkou přepínačů 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í vybraného profilu.

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

Ke zobrazení momentálně aktivních přepínačů USE (úplný výpis), použijte :

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

Změnu tohoto výchozího nastavení lze provést přidáním nebo odebráním klíčových slov 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é přepínaše USE nebo odebrat ty z nich, které už nejsou třeba. Druhou možnost provedete přidáním znaku minus před klíčové slovo.

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

Deklarování voleb USE u jednotlivých balíčků
Uživatelé někdy chtějí deklarovat určitou volbu USE pro jednu (nebo několik) aplikací, ale na úrovni celého systému. Abychom toho dosáhli, upravíme. Soubor je typicky jediným souborem, nicméně může jít i o adresář obsahující soubory; Přečtěte si níže uvedený tip a pak  ohledně informací, jak využít tuto konvenci. Následující příklad předpokládá, že je jediný soubor.

Například pro podporu Blu-ray 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 přepínačů USE
Někdy potřebují uživatelé nastavit volbu USE pouze na moment. 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 zadaný příkaz; znovu nainstalování nebo aktualizace této aplikace (ať už přímo nebo jako součást 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í

To view the final USE setting as seen by Portage, run. This will list all relevant variables (including the USE variable) with their current definition as known to Portage.

Adapting the entire system to the new USE flags
After having altered USE flags, the system should be updated to reflect the necessary changes. To do so, use the  option with :

Next, run Portage's depclean to remove the conditional dependencies that were emerged on the "old" system but that have been obsoleted by the new USE flags.

When depclean has finished, may prompt to rebuild the applications that are dynamically linked against shared objects provided by possibly removed packages. Portage will preserve necessary libraries until this action is done to prevent breaking applications. It stores what needs to be rebuilt in the  set. To rebuild the necessary packages, run:

When all this is accomplished, the system is using the new USE flag settings.

Viewing available USE flags
Let's take the example of seamonkey: what USE flags does it listen to? To find out, we use with the   and   options:

isn't the only tool for this job. In fact, there is a tool dedicated to package information called which resides in the  package

Now run with the uses argument to view the USE flags of a certain package. For instance, for the gnumeric package:

Satisfying REQUIRED_USE conditions
Some ebuilds require or forbid certain combinations of USE flags in order to work properly. This is expressed via a set of conditions placed in a REQUIRED_USE expression. This conditions ensure that all features and dependencies are complete and that the build will succeed and perform as expected. If any of these are not met, emerge will alert you and ask you to fix the issue.

Some examples of this REQUIRED_USE  expression are given below: