1.24 2005-01-22
Možnosti Portage

Aby se Vám s Gentoo lépe pracovalo, nabízí Portage mnoho dalších možností. Některé z nich závisí na různých doplňkových nástrojích vylepšujících výkon, spolehlivost, bezpečnost,...

Pro povolení nebo zakázání určité možnosti musíte změnit proměnnou FEATURES v souboru /etc/make.conf. V některých případech budete navíc muset doinstalovat příslušný nástroj, na kterém daná funkce závisí.

V tomto dokumentu nebudou popsány všechny funkce, které Portage umí; pro jejich kompletní přehled se podívejte na manuálovou stránku make.conf:

$ man make.conf

Abyste zjistili, jaké možnosti jsou zapnuty, podívejte se do výstupu emerge --info na proměnnou FEATURES:

$ emerge --info | grep FEATURES
Distribuované kompilace Použití distcc

distcc slouží pro rozdělení kompilace mezi více strojů v síti, které navíc nemusí být nutně stejné. Klient distcc posílá dostupným serverům, na kterých běží distccd, všechny potřebné informace, takže mohou kompilovat části zdrojového kódu paralelně. Výsledkem je celkové urychlení kompilace.

Více informací o distcc a o jejím použití s Gentoo můžete najít v Gentoo distcc dokumentaci.

Instalace distcc

Distcc je dodávaná s grafickým nástrojem pro monitorování úkolů, které Váš počítač požaduje od ostatních. Používáte-li Gnome, přidejte do USE proměnnou 'gnome', pokud ne, a přesto chcete mít tento nástroj k dispozici, přidejte 'gtk'.

# emerge distcc
Aktivace podpory v Portage

V souboru /etc/make.conf přidejte do proměnné FEATURES hodnotu distcc. Dále je potřeba změnit nastavení MAKEOPTS; známé pravidlo je hodnota "-jX", kde X je celkový počet procesorů, na kterých běží distccd (včetně počítače, který posílá požadavky na kompilace) plus jedna, avšak můžete dosáhnout lepších výsledků i s jinými hodnotami.

Nyní spusťte distcc-config a zadejte seznam dostupných distcc serverů. Popíšeme si jednoduchý příklad, kde budeme používat servery 192.168.1.102 (počítač, na kterém nyní pracujeme), 192.168.1.103 a 192.168.1.104 ("vzdálené" stroje):

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Nezapomeňte spustit démona distccd:

# rc-update add distccd default
# /etc/init.d/distccd start
Vyrovnávací paměť kompilace (cache) Představujeme ccache

ccache je rychlá vyrovnávací paměť (cache) kompilátoru, která si zapamatuje výsledek každého překladu. V případě, že budete chtít překompilovat stejný program později, se tak celý proces podstatně urychlí, pro běžné aplikace přibližně pětkrát až desetkrát.

Pokud Vás zajímají výhody i nevýhody ccache, navštivte prosím její domovskou stránku.

Instalace ccache

Pro instalaci ccache spusťte emerge ccache:

# emerge ccache
Aktivace podpory v Portage

Otevřete soubor /etc/make.conf a přidejte ccache do proměnné FEATURES. Navíc vytvořte další proměnnou CCACHE_SIZE a nastavte ji na hodnotu "2G":

CCACHE_SIZE="2G"

Abyste zjistili, zda ccache funguje, požádejte ji o zobrazení statistiky:

# ccache -s
Použití ccache pro C kompilace mimo Portage

Chcete-li používat ccache i pro kompilace mimo Portage, musíte přidat /usr/lib/ccache/bin na začátek proměnné PATH (před /usr/bin). Dosáhnete toho editací souboru /etc/profile:

PATH="/usr/lib/ccache/bin:${PATH}"
Podpora binárních balíčků Vytváření předkompilovaných balíčků

Portage podporuje instalace z předkompilovaných balíčků. I když je samo Gentoo kromě takzvaných GRP snapshotů neposkytuje, Portage je zpracovávat umí.

Pokud je balíček již nainstalován, můžete z něj vytvořit binární pomocí quickpkg; pokud není, použijte emerge s parametrem --buildpkg či --buildpkgonly.

Chcete-li, aby Portage vytvářelo předkompilované balíčky při každé instalaci, přidejte do proměnné FEATURES hodnotu buildpkg.

Rozšířenější podporu vytváření předkompilovaných skupin balíčků poskytuje catalyst; pro více informací si prosím přečtěte Referenční manuál Catalyst a Catalyst Howto.

Instalace předkompilovaných balíčků

Gentoo sice předkompilované balíčky přímo neposkytuje, ale můžete si je vytvořit sami. Pokud se tak rozhodnete, musíte Portage informovat, kde je má hledat, a to pomocí proměnné PORTAGE_BINHOST. Ukládáte-li například balíčky na ftp://buildhost/gentoo, použijte:

PORTAGE_BINHOST="ftp://buildhost/gentoo"

Když chcete nainstalovat předkompilovaný balíček, přidejte --getbinpkg k volbě --usepkg příkazu emerge. První zajistí stažení předkompilovaného balíčku, druhá jeho použití namísto nové kompilace.

Chcete-li například nainstalovat gnumeric z předkompilovaného balíčku, použijte toto:

# emerge --usepkg --getbinpkg gnumeric

Více informací o předkompilovaných balíčcích najdete v manuálové stránce příkazu emerge:

$ man emerge