Handbook:Alpha/Working/USE/cs

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Working/USE and the translation is 50% complete.
Alpha Handbook
Instalace
O instalaci
Výběr média
Konfigurace sítě
Příprava disků
Instalace stage3
Instalace základního systému
Konfigurace jádra
Konfigurace systému
Instalace nástrojů
Konfigurace zavaděče
Dokončení
Práce s Gentoo
Úvod do Portage
Přepínače USE
Funkce portage
Systém initskriptů
Proměnné prostředí
Práce s Portage
Soubory a adresáře
Proměnné
Mísení softwarových větví
Doplňkové nástroje
Vlastní strom Portage
Pokročilé funkce
Konfigurace sítě
Začínáme
Pokročilá konfigurace
Modulární síťování
Bezdrátové sítě
Přidání funkcí
Dynamická správa

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

When the kde flag is set to enabled, then those packages will be compiled with KDE support, and the KDE libraries will be installed as dependency.

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

Používánéí voleb USE

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 make.defaults, které jsou součástí zvoleného profilu.

Profil, který systém používá, je označen prostřednictvím odkazu /etc/portage/make.profile. Každý profil funguje nad jinými profily a výsledek je tedy součtem všech profilů. Nejvyšší profil, je základní profil (/var/db/repos/gentoo/profiles/base).

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

root #emerge --info | grep ^USE
USE="a52 aac acpi alsa branding cairo cdr dbus dts ..."

Jak můžete vidět, už nyní tato proměnná obsahuje mnoho hesel. Neměňte však žádný ze souborů make.defults, 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 /etc/portage/make.conf. 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 /etc/portage/make.conf:

FILE /etc/portage/make.confAktualizace USE v make.conf
USE="-kde -qt4 -qt5 ldap"

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 /etc/portage/package.use. Soubor package.use 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 man 5 portage pro více informací o tom, jak využít tento způsob. Následující příklad předpokládá, že je package.use jediný soubor.

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

FILE /etc/portage/package.useZapnutí podpory blu-ray ve VLC
media-video/vlc bluray
Tip
Pokud už package.use existuje jako adresář (namísto jednoho souboru), lokální volby USE balíčků mohou být jednoduše měněny vytvářením souborů v adresáři package.use/. Použít lze jakékoli názvy souborů, nicméně hodí se používat jednotné schéma pojmenování. Jednou z možností je jednoduše používat název balíčku pro jméno souboru. Například nastavení volby USE bluray lokálně pro balíček media-video/vlc může být provedeno následujícím způsobem:

root #echo "media-video/vlc bluray" >> /etc/portage/package.use/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 make.conf):

FILE /etc/portage/package.useVypnutí podpory bzip2 v PHP
dev-lang/php -bzip2

Nastavení dočasných voleb USE

Někdy potřebují uživatelé nastavit volby USE pouze na chvíli. Namísto dvojí změny /etc/portage/make.conf (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 pulseaudio během instalace SeaMonkey:

root #USE="-pulseaudio" emerge www-client/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 make.defaults vašeho profilu
  2. Uživatelem definované nastavení USE v /etc/portage/make.conf
  3. Uživatelem definované nastavení USE v /etc/portage/package.use
  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 emerge --info. 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.

root #emerge --info

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 --newuse s emerge:

root #emerge --update --deep --newuse @world

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.

Upozornění
Spuštění emerge --depclean je nebezpečná operace a měla by být prováděna s pečlivostí. Zkontrolujte dobře nabídnutý seznam "zastaralých" balíčků a ujistěte se, že neodstraníte balíček, který potřebujete. V následujícím příkladu jsme přidali přepínač -p, aby funkce depclean pouze vypsala balíčky bez jejich odstranění:
root #emerge -p --depclean

Jakmile funkce depclean skončila, může emerge 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 preserved-rebuild. K opětovnému sestavení požadovaných balíčků spusťte:

root #emerge @preserved-rebuild

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

Zvláštní volby USE balíčků

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 emerge s volbami --pretend a --verbose:

root #emerge --pretend --verbose www-client/seamonkey
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[ebuild  N     ] www-client/seamonkey-2.48_beta1::gentoo  USE="calendar chatzilla crypt dbus gmp-autoupdate ipc jemalloc pulseaudio roaming skia startup-notification -custom-cflags -custom-optimization -debug -gtk3 -jack -minimal (-neon) (-selinux) (-system-cairo) -system-harfbuzz -system-icu -system-jpeg -system-libevent -system-libvpx -system-sqlite {-test} -wifi" L10N="-ca -cs -de -en-GB -es-AR -es-ES -fi -fr -gl -hu -it -ja -lt -nb -nl -pl -pt-PT -ru -sk -sv -tr -uk -zh-CN -zh-TW" 216,860 KiB
 
Total: 1 package (1 new), Size of downloads: 216,860 KiB

emerge 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ý equery, který se nachází v balíčku app-portage/gentoolkit.

root #emerge --ask app-portage/gentoolkit

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

user $equery --nocolor uses =gnumeric-1.12.31
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-office/gnumeric-1.12.31:
 U I
 + + introspection            : Add support for GObject based introspection
 - - libgda                   : Enable database support through gnome-extra/libgda.
 - - perl                     : Enable perl plugin loader.
 + + python                   : Enable python plugin loader.
 + + python_targets_python2_7 : Build with Python 2.7

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.

Příklad Popis
REQUIRED_USE="foo? ( bar )" Pokud je zapnuta foo, musí být zapnuta bar.
REQUIRED_USE="foo? ( !bar )" Pokud je zapnuta foo, musí být vypnuta bar.
REQUIRED_USE="foo? ( || ( bar baz ) )" Pokud je zapnuta foo, musí být zapnuta bar nebo baz.
REQUIRED_USE="^^ ( foo bar baz )" Musí být zapnuta právě jedna z foo bar nebo baz.
REQUIRED_USE="|| ( foo bar baz )" Musí být zapnuta alespoň jedna z foo bar nebo baz.
REQUIRED_USE="?? ( foo bar baz )" Nesmí být zapnuta více než jedna z foo bar nebo baz.