Handbook:X86/Working/Features/cs

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:X86/Working/Features and the translation is 50% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎čeština • ‎русский • ‎தமிழ் • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
X86 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


Funkce Portage

Portage má také několik dalších funkcí, které činí práci s Gentoo ještě lepší. Některé z těchto funkcí závisí na určitých softwarových nastrojích, které zlepšují výkon, spolehlivost, zabezpěčení...

Funkce portage zapnete a vypnete úpravou /etc/portage/make.conf nebo změnou proměnné FEATURES, která obsahuje hesla daných funkcí, oddělené mezerou. V určitých případech bude třeba také nainstalovat nástroje, které daná funkce využívá.

Neuvádíme zde všechny funkce, které Portage podporuje. Úplný přehled najdete v manuálové stránce make.conf:

user $man make.conf

Chcete-li zjistit, které funkce jsou v základu zapnuty, spusťte emerge --info a hledejte proměnnou FEATURES nebo ji zobrazte pomocí grep:

user $emerge --info | grep ^FEATURES=

Distribuovaná kompilace

Použití distcc

distcc je program, který umožňuje kompilaci pomocí několika, ne nutně stejných, zařízení v síti. Klient distcc posílá všechny potřebné informace dostupným serverům distcc (na kterých běží distccd), aby zkompilovali kousky zdrojového kódu pro klienta. Výsledkem je rychlejší kompilace.

Více informací o distcc (a o tom jak jej na Gentoo zprovoznit), můžete najít v článku o Distcc.

Instalace distcc

Distcc obsahuje grafický monitor ke sledování úloh, které systém odesílá pro kompilaci. Tento nástroj je automaticky nainstalován pokud je nastavena volba USE=gnome nebo USE=gtk.

root #emerge --ask sys-devel/distcc

Aktivace podpory distcc v Portage

Vložte heslo distcc do proměnné FEATURES v /etc/portage/make.conf. Následně upravte proměnnou MAKEOPTS a navyšte počet paralelních úloh sestavení, tak jak to systém umožňuje. Běžným doporučením je použít -jN, kde N je počet procesorů, na kterých běží distccd (včetně vašeho stroje) plus jeden, ale je to jen doporučení.

Nyní spusťte distcc-config a vložte seznam dostupných distcc serverů. Pro jendoduchost předpokládejme, že máme k dispozici DistCC servery 192.168.1.102 (náš počítač), 192.168.1.103 a 192.168.1.104 (dva "vzdálené" počítače).

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

Nezapomeňte také spustit démona distccd:

root #rc-update add distccd default
root #/etc/init.d/distccd start

Kešování kompilovaných objektů

O ccache

ccache je rychlá keš kompilátoru. Kdykoli dochází ke kompilaci aplikace, kešuje výsledky, tak aby v případě, že dojde znovu ke kompilaci stejného programu, došlo k velké úspoře času při kompilaci. Při prvním spuštění však bude kompilace s ccache pomalejší než normálně. Další rekompilace by ale měla být značně rychlejší. ccache pomáhá jen tehdy, pokud se stejná aplikace kompiluje mnohokrát (nebo pokud je stejná aplikace často aktualizována); proto je většinou užitečná pouze pro vývojáře softwaru.

Pro více informací o ccache prosím navštivte její domovskou stránku.

Warning
Ví se, že ccache způsobuje při kompilaci mnoho chyb. Občas může ccache uchovávat zastaralé objekty kódu nebo porušené soubory, což může vést k selhání instalace balíčků. Pokud se to stane (v build logu se ukazují chyby jako "File not recognized: File truncated"), zkuste aplikaci sestavit znovu s vypnutou ccache (FEATURES="-ccache" v /etc/portage/make.conf) před nahlášením chyby.

Instalace ccache

Ccache nainstalujete následujícím příkazem:

root #emerge --ask dev-util/ccache

Aktivace podpory ccache v Portage

Otevřete /etc/portage/make.conf a vložte ccache mezi ostatní hodnoty definované v proměnné FEATURES. Pokud FEATURES neexistuje, vytvořte ji. Následně přidejte novou proměnnou jménem CCACHE_SIZE a nastavte její hodnotu na 2G:

FILE /etc/portage/make.confZapnutí podpory ccache v Portage
FEATURES="ccache"
CCACHE_SIZE="2G"

Kontrolu funkčnosti ccache provedete dotazem na její statistiky. Jelikož Portage používá pro ccache odlišný domovský adresář, je potřeba dočasně nastavit proměnnou CCACHE_DIR:

root #CCACHE_DIR="/var/tmp/ccache" ccache -s

Umístění /var/tmp/ccache/ je výchozí domovský adresář ccache v Portage; může být změněn nastavením proměnné CCACHE_DIR v /etc/portage/make.conf.

Pokud je ccache spuštěna samostatně, použije výchozí umístění ${HOME}/.ccache/, proto je třeba nastavit proměnnou CCACHE_DIR, když chceme zjistit statistiky ccache pro Portage.

Použití ccache mimo Portage

To use ccache for non-Portage compilations, add /usr/lib/ccache/bin/ to the beginning of the PATH variable (before /usr/bin). This can be accomplished by editing ~/.bash_profile in the user's home directory. Using ~/.bash_profile is one way to define PATH variables.

FILE ~/.bash_profileSetting the ccache location before any other PATH
PATH="/usr/lib/ccache/bin:${PATH}"

Binary package support

Creating prebuilt packages

Portage supports the installation of prebuilt packages. Even though Gentoo does not provide prebuilt packages by itself Portage can be made fully aware of prebuilt packages.

To create a prebuilt package use the quickpkg command if the package is already installed on the system, or emerge with the --buildpkg or --buildpkgonly options.

To have Portage create prebuilt packages of every single package that gets installed, add buildpkg to the FEATURES variable.

More extended support for creating prebuilt package sets can be obtained with catalyst. For more information on catalyst please read the Catalyst FAQ.

Installing prebuilt packages

Although Gentoo doesn't provide one, it is possible to create a central repository where prebuilt packages are stored. In order to use this repository, it is necessary to make Portage aware of it by having the PORTAGE_BINHOST variable point to it. For instance, if the prebuilt packages are on ftp://buildhost/gentoo:

FILE /etc/portage/make.confAdd PORTAGE_BINHOST location
PORTAGE_BINHOST="ftp://buildhost/gentoo"

To install a prebuilt package, add the --getbinpkg option to the emerge command alongside of the --usepkg option. The former tells emerge to download the prebuilt package from the previously defined server while the latter asks emerge to try to install the prebuilt package first before fetching the sources and compiling it.

For instance, to install gnumeric with prebuilt packages:

root #emerge --usepkg --getbinpkg gnumeric

More information about emerge's prebuilt package options can be found in the emerge man page:

user $man emerge

Distributing prebuilt packages to others

If prebuilt packages are to be distributed to others, then make sure that this is permitted. Check the distribution terms of the upstream package for this. For example, for a package released under the GNU GPL, sources must be made available along with the binaries.

Ebuilds may define a bindist restriction in their RESTRICT variable if built binaries are not distributable. Sometimes this restriction is conditional on one or more USE flags.

By default, Portage will not mask any packages because of restrictions. This can be changed globally by setting the ACCEPT_RESTRICT variable in /etc/portage/make.conf. For example, to mask packages that have a bindist restriction, add the following line to make.conf:

FILE /etc/portage/make.confOnly accept binary distributable packages
ACCEPT_RESTRICT="* -bindist"

It is also possible to override the ACCEPT_RESTRICT variable by passing the --accept-restrict option to the emerge command. For example, --accept-restrict=-bindist will temporarily mask packages with a bindist restriction.

Also consider setting the ACCEPT_LICENSE variable when distributing packages. See the Licenses section for this.

Important
It is entirely the responsibility of each user to comply with packages' license terms and with laws of each user's country. The metadata variables defined by ebuilds (RESTRICT or LICENSE) can provide guidance when distribution of binaries is not permitted, however output from Portage or questions answered by the Gentoo developers are not legal statements and should not be relied upon as such. Be cautious to abide by the law of your physical location.

Fetching files

Userfetch

Portage is normally run as the root user. Setting FEATURES="userfetch" will allow Portage to drop root privileges while fetching package sources and run with user/group permissions of portage:portage. This is a small security improvement.

If userfetch is set in FEATURES be sure to change the owner of all the files beneath /var/db/repos/gentoo using the chown command with root privileges:

root #chown --recursive --verbose portage:portage /var/db/repos/gentoo

Verify distfiles

To re-verify the integrity and (potentially) re-download previously removed/corrupted distfiles for all currently installed packages, run:

root #emerge --ask --fetchonly --emptytree @world