Instalace instalačních souborů Gentoo
Výběr balíku stage
On supported architectures, it is recommended for users targeting a desktop (graphical) operating system environment to use a stage file with the term
desktop
within the name. These files include packages such as sys-devel/llvm and dev-lang/rust-bin and USE flag tuning which will greatly improve install time.The stage file acts as the seed of a Gentoo install. Stage files are generated with Catalyst by the Release Engineering Team. Stage files are based on specific profiles, and contain an almost-complete system.
When choosing a stage file, it's important to pick one with profile targets corresponding to the desired system type.
While it's possible to make major profile changes after an installation has been established, switching requires substantial effort and consideration, and is outside the scope of this installation manual. Switching init systems is difficult, but switching from
no-multilib
to multilib
requires extensive Gentoo and low-level toolchain knowledge.Většina uživatelů nemusí používat nabízené "pokročilé" balíky; jsou určeny pro specifické konfigurace softwaru a hardwaru.
OpenRC
OpenRC is a dependency-based init system (responsible for starting up system services once the kernel has booted) that maintains compatibility with the system provided init program, normally located in /sbin/init. It is Gentoo's native and original init system, but is also deployed by a few other Linux distributions and BSD systems.
OpenRC does not function as a replacement for the /sbin/init file by default and is 100% compatible with Gentoo init scripts. This means a solution can be found to run the dozens of daemons in the Gentoo ebuild repository.
systemd
systemd is a modern SysV-style init and rc replacement for Linux systems. It is used as the primary init system by a majority of Linux distributions. systemd is fully supported in Gentoo and works for its intended purpose. If something seems lacking in the Handbook for a systemd install path, review the systemd article before asking for support.
Multilib (32 and 64bitový)
Not every architecture has a multilib option. Many only run with native code. Multilib is most commonly applied to amd64.
Výběr základního stage balíku může později ušetřit spoustu čas během procesu instalace, zvláště ve chvíli, kdy budete vybírat profil systému. Vyběr stage balíku má přímý dopad na budoucí konfiguraci systému a může vám později ušetřit muka. Balík multilib obsahuje, je-li to možné, 64bitové knihovny a jako zálohu volí 32bitové verze pouze tehdy, je-li to potřeba z pohledu kompatibility. Jde o vynikající volbu pro většinu instalací, jelikož poskytuje vysokou míru flexibility a přizpůsobení v budoucnosti. Ti, kteří touží po tom, aby byl jejich systém schopen snadno měnit profily, by měli stáhnout balík multilib pro svoji procesorovou architekturu.
Using
multilib
targets makes it easier to switch profiles later, compared to no-multilib
Ne-multilib (čistě 64bitový)
Vemte na vědomí, že přechod z ne-multilib na multilib systém vyžaduje extrémní znalosti fungování Gentoo a nízkoúrovňových nástrojů (dokonce i našim vyvojářům základních nástrojů by proběhl mráz po zádech). Není to nic pro slabé povahy a jedná se o záležitost, která je mimo záběr tohoto průvodce.
Vyberete-li non-multilib balík jako základ pro systém poskytne výhradně 64bitové prostředí operačního systému. Tím se stává možnost přejít na multilib profil nepravděpodobné, i když stále možné. Ti, kteří s Gentoo teprve začínají by neměli volit non-multilib balík pokud to není absolutně nezbytné.
Stažení archivu stage
Before downloading the stage file, the current directory should be set to the location of the mount used for the install:
root #
cd /mnt/gentoo
Nastavení data a času
Stage archives are generally obtained using HTTPS which requires relatively accurate system time. Clock skew can prevent downloads from working, and can cause unpredictable errors if the system time is adjusted by any considerable amount after installation.
Ověřte aktuální datum a čas spuštěním příkazu date:
root #
date
Po Říj 3 13:16:22 PDT 2016
Pokud je zobrazené datum/čas chybné, aktualizujte ho jedním z následujících způsobů.
Automaticky
Using NTP to correct clock skew is typically easier and more reliable than manually setting the system clock.
chronyd, part of net-misc/chrony can be used to update the system clock to UTC with:
root #
ntpd -q -g
Systems without a functioning Real-Time Clock (RTC) must sync the system clock at every system start, and on regular intervals thereafter. This is also beneficial for systems with a RTC, as the battery could fail, and clock skew can accumulate.
Standard NTP traffic not authenticated, it is important to verify time data obtained from the network.
Ručně
When NTP access is unavailable, date can be used to manually set the system clock.
Na všech Linuxových systémech se doporučuje používat čas UTC. Později během instalace určíme časovou zónu. Tím změníme zobrazení hodin na místní čas.
Příkaz date může být použit také k ručnímu nastavení času systémových hodin. Použijte syntaxi MMDDhhmmYYYY
(měsíc, den, hodina, minuta a rok).
Příklad nastavení datumu na 3. října, 13.16 v roce 2016:
root #
date 100313162016
Grafické prohlížeče
Ti, kteří používají prostředí s plně grafickými prohlížeči nebudou mít problém zkopírovat URL ze sekce download hlavní webové stránky. Jednoduše zvolte odpovídající tab, klikněte pravým tlačítkem na odkaz stage souboru, potom na Zkopírovat adresu odkazu (Firefox) nebo Zkopírovat umístění odkazu (Chromium), abyste zkopírovali odkaz do schránky, následně předejte odkaz nástroji wget na příkazovém řádku, abyste archiv stáhli:
root #
wget <VLOŽENÁ_URL_STAGE>
Prohlížeče příkazového řádku
Tradicionalisté nebo "staří" uživatelé Gentoo pracující výhradně v příkazovém řádku mohou upřednostňovat použití programu links, negrafického prohlížeče ovládaného pomocí menu. Ke stažení stage surfujte na seznam zrcadel Gentoo tímto způsobem:
root #
links https://www.gentoo.org/downloads/mirrors/
HTTP proxy s prohlížečem links použijete tak, že mu předáte volbu -http-proxy
:
root #
links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/
Vedle links můžete použít také prohlížeč lynx. Stejně jako links se jedná o negrafický prohlížeč, který však nemá menu.
root #
lynx https://www.gentoo.org/downloads/mirrors/
Pokud potřebujete definovat proxy, exportujte proměnné http_proxy a/nebo ftp_proxy.
root #
export http_proxy="http://proxy.server.com:port"
root #
export ftp_proxy="http://proxy.server.com:port"
V seznamu zvolte zrcadlo umístěné někde oblíž. Obvykle postačí HTTP zrcadla, ale ostatní protokoly jsou v nabídce také. Přesuňte se do adresáře releases/amd64/autobuilds/. Zobrazí se vám veškeré nabízené soubory stage (mohou být uloženy v podadresářích pojmenovaných podle jednotlivých subarchitekturách). Jeden z nich vyberte a stiskněte d, čímž dojde ke stažení.
Jakmile je soubor stage stažen, je možné ověřit integritu a potvrdit obsah stage archivu. Ti, které to zajímá, nechť přejdou do další sekce.
Ti, kteří nemají zájem ověřovat a potvrzovat soubor stage mohou zavřít prohlížeč v příkazovém řádku stisknutím q a přesunout se přímo do sekce rozbalení stage archivu.
Ověření a potvrzení
Most stages are now explicitly suffixed with the init system type (openrc or systemd), although some architectures may still be missing these for now.
Stejně jako u minimálních instalačních CD jsou k dispozici i doplňkové soubory k ověření a kontrole souboru stage. I když mohou být tyto kroky přeskořeny, jsou tyto soubory poskytovány uživatelům, kteří dbají na legitimitu souboru(ů), které stáhli.
root #
wget https://distfiles.gentoo.org/releases/
- Soubor .CONTENTS obsahuje seznam všech souborů v balíku.
- Soubor .DIGESTS obsahuje kontrolní součty souboru stage dle různých algoritmů.
- Soubor .DIGESTS.asc obsahuje stejně jako soubor .DIGESTS kontrolní součty souboru stage dle různých algoritmů a navíc je zároveň kryptograficky podepsán pro ověření toho, že pochází z projektu Gentoo.
Použijte příkaz openssl a porovnejte výstup s kontrolními součty obsaženými v souborech .DIGESTS nebo .DIGESTS.asc.
Například ověření kontrolního součtu SHA512 provedete takto:
root #
openssl dgst -r -sha512 stage3-amd64-<release>.tar.?(bz2|xz)
dgst
instructs the openssl command to use the Message Digest sub-command, -r
prints the digest output in coreutils format, and -sha512
selects the SHA512 digest.
Ověření kontrolního součtu Whirpool:
root #
openssl dgst -r -whirlpool stage3-amd64-<release>.tar.?(bz2|xz)
Porovnejte výstupy těchto příkazů s hodnotami zapsanými v souborech .DIGESTS(.asc). Hodnoty se musí shodovat, v opačném případě mohlo dojít k porušení staženého souboru (nebo souboru se součty).
Jiným cestou je použití příkazu sha512sum:
root #
sha512sum stage3-amd64-<release>.tar.?(bz2|xz)
The --check
option instructs sha256sum to read a list of expected files and associated hashes, and then print an associated "OK" for each file that calculates correctly or a "FAILED" for files that do not.
Stejně jako u souboru ISO je možné ověřit kryptografický podpis souboru .DIGESTS.asc pomocí příkazu gpg a ověřit tak, že kontrolní součty nebyly měněny:
For official Gentoo live images, the sec-keys/openpgp-keys-gentoo-release package provides PGP signing keys for automated releases. The keys must first be imported into the user's session in order to be used for verification:
root #
gpg --import /usr/share/openpgp-keys/gentoo-release.asc
For all non-official live images which offer gpg and wget in the live environment, a bundle containing Gentoo keys can be fetched and imported:
root #
wget -O - https://qa-reports.gentoo.org/output/service-keys.gpg | gpg --import
Verify the signature of the tarball and, optionally, associated checksum files:
root #
gpg --verify stage3-amd64-<release>.tar.?(bz2|xz){.DIGESTS.asc,}
If verification succeeds, "Good signature from" will be in the output of the previous command(s).
The fingerprints of the OpenPGP keys used for signing release media can be found on the release media signatures page.
Instalace stage balíku
Nyní stažený stage soubor rozbalte do systému. K tomu použijeme příkaz tar:
root #
tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner
Přesvědčte se, že jste použili stejné volby (xpf
a --xattrs-include='*.*'
). Volba x
znamená extrahovat, p
zachovat (angl. preserve) oprávnění a f
značí, že chceme rozbalit soubor (ang. file), nikoli standardní vstup. Volba --xattrs-include='*.*'
zajistí zahrnutí rozšířených atributů, které jsou v archivu také uloženy. Konečně volba --numeric-owner
se použije k zajištění, že uživatelská a skupinová ID souborů rozbalených z archivu zůstanou stejná, dle záměrů týmu Gentoo spravujícího vydání distribuce (i když dobrodružní uživatelé nepoužijí oficiální instalační média Gentoo).
x
extract, instructs tar to extract the contents of the archive.p
preserve permissions.v
verbose output.f
file, provides tar with the name of the input archive.--xattrs-include='*.*'
Preserves extended attributes in all namespaces stored in the archive.--numeric-owner
Ensure that the user and group IDs of files being extracted from the tarball remain the same as Gentoo's release engineering team intended (even if adventurous users are not using official Gentoo live environments for the installation process).
Nyní, když je stage soubor rozbalený, pokračujte ke konfiguraci kompilačních voleb.
Konfigurace kompilačních voleb
Úvod
Gentoo je možné vyladit nastavením několika proměnných, které mají dopad na chování Portage, oficiálního správce balíčků Gentoo. Všechny proměnné mohou být nastaveny jako proměnné prostředí (pomocí příkazu export), nicméně to není trvalé řešení. Nastavení se uchovává v konfiguračním souboru /etc/portage/make.conf, odkud je Portage načítá.
Technically variables can be exported via the shell's profile or rc files, however that is not best practice for basic system administration.
Portage reads in the make.conf file when it runs, which will change runtime behavior depending on the values saved in the file. make.conf can be considered the primary configuration file for Portage, so treat its content carefully.
Komentovaný výpis všech možných proměnných lze najít v souboru /mnt/gentoo/usr/share/portage/make.conf.example. K úspěšnému nainstalování Gentoo je třeba nastavit pouze proměnné uvedené níže.
For a successful Gentoo installation only the variables that are mentioned below need to be set.}}
Spusťte editor (v tomto průvodci používáme nano) a upravte optimalizační proměnné, které nyní probereme.
root #
nano -w /mnt/gentoo/etc/portage/make.conf
Ze souboru make.conf.example je zjevné, jak má být uspořádán: komentované řádky začínají "#", ostatní řádky definují proměnné prostřednictvím syntaxe PROMENNA="obsah". Nyní se podíváme na několik z těchto proměnných.
CFLAGS a CXXFLAGS
Proměnné CFLAGS a CXXFLAGS definují optimalizační parametry C potažmo C++ kompilátorů GCC. Na tomto místě se definují všeobecně, pro dosažení maximálního výkonu by musely být nastaveny pro každý program zvlášť. Důvodem je, že každý program je různý. Nicméně to není únosné, proto se tyto volby nastavují v souboru make.conf.
V souboru make.conf by měly být obecně nastaveny takové optimalizační přepínače, jejichž použití povede k co nejlepší odezvě systému. Do této proměnné neumisťujte experimentální nastavení; příliš mnoho optimalizací může způsobit špatné chování programů (pády nebo hůře, závadné chování).
Nebudeme zde popisovat všechny možnosti vyladění. Nastudovat si je můžete v GNU online manuálu nebo info stránce gcc (info gcc - lze spustit jen ve fungujícím systému Linux). Také samotný soubor make.conf.example obsahuje mnoho příkladů a informací, nezapomeňte si jej také přečíst.
Prvním nastavením je hodnota parametru -march=
nebo -mtune=
, který stanoví jméno cílové architektury. Možné volby jsou popsány v souborumake.conf.example (jako komentáře). Běžně používanou hodnotou je "native", která kompiléru říká, aby používal cílovou architekturu daného systému (toho, na nějž uživatel instaluje Gentoo).
Druhým je parametr -O
(jedná se o velké O, nikoli o nulu), který určuje třídu optimalizací gcc. Možné třídy jsou s (pro optimalizaci velikosti), 0 (nula - žádné optimalizace), 1, 2 nebo dokonce 3 pro více urychlujících optimalizací (každá třída obsahuje stejné parametry, jako ta přechozí a k tomu nějaké další). -O2
je doporučenou výchozí hodnotou. O -O3
je známo, že při plošném použití v celém systému způsobuje problémy, tudíž doporučujeme držet se -O2
.
Dalším oblíbeným optimalizačním parametrem je -pipe
(použije roury namísto dočasných souborů ke komunikaci mezi různými fázemi kompilace). Ten nemá dopad na generovaný kód, ale používá více paměti. V systémech s nízkým množstvím paměti může kvůli tomu dojít k zabití gcc. V takovém případě tento parametr nepoužívejte.
Použití -fomit-frame-pointer
(který nezachová frame pointer v registru pro funkce, které jej nepotřebují) může mít závažné dopady na debugging aplikací.
Jakmile jsou proměnné CFLAGS a CXXFLAGS definovány, složte optimalizační přepínače do jednoho řetězce. Výchozí hodnoty obsažené ve stage3 archivu by měly být dostatečné. Následující zápis je pouze příkladem:
# Přepínače kompilátoru používané pro všechny jazyky
COMMON_FLAGS="-march=native -O2 -pipe"
# Použij stejnou hodnotu pro obě proměnné
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Ačkoli článek o optimalizaci GCC obsahuje více informací o tom, jak mohou různé volby kompilace ovlivnit systém, může být pro začátečníka praktičtější začít s optimalizací systému článkem o bezpečném nastavení CFLAG.
MAKEOPTS
Proměnná MAKEOPTS určuje, kolik paralelních kompilací může být prováděno při instalaci balíku. Dobrou volbou je počet CPU (nebo jader CPU) v systému plus jedna, ale toto vodítko není vždy dokonalé.
Further, as of Portage 3.0.53[1], if left undefined, Portage's default behavior is to set the MAKEOPTS load-average value to the same number of threads returned by nproc.
A good choice is the smaller of: the number of threads the CPU has, or the total amount of system RAM divided by 2 GiB.
Using a large number of jobs can significantly impact memory consumption. A good recommendation is to have at least 2 GiB of RAM for every job specified (so, e.g.
-j6
requires at least 12 GiB). To avoid running out of memory, lower the number of jobs to fit the available memory.When using parallel emerges (
--jobs
), the effective number of jobs run can grow exponentially (up to make jobs multiplied by emerge jobs). This can be worked around by running a localhost-only distcc configuration that will limit the number of compiler instances per host.MAKEOPTS="-j2"
Search for MAKEOPTS in man 5 make.conf for more details.
Připravit, pozor, teď!
Upravte soubor /mnt/gentoo/etc/portage/make.conf tak, aby odpovídal vašim osobním preferencím a uložte jej (uživatelé nano stisknou Ctrl+X).
References