Gentoo Linux je mladá metadistribuce, ve které instalace balíčků probíhá přímo kompilováním ze zdrojových kódů. Hlavními přednostmi Gentoo Linuxu, který má ve znaku slušivé "géčko", je "čistota" - sestavovací "balíčkovací" program portage vždy udržuje systém v dobré kondici.
Na těchto stránkách vám poradím s instalací této čím dál více oblíbené distribuce. Ta se totiž provádí ručně a další nastavování celého systému (včetně konfigurace serveru X) zabere většinou několik dnů.
Podotýkám, že budu předpokládat instalaci na počítač architektury x86 o jednom disku (/dev/hda) bez operačního systému.
Jelikož úplná kompilace (tzv. stage1 instalace) zabere poměrně mnoho hodin (musí se nejprve zkompilovat kompilátor, základní nástroje, příkazový interpretr a jádro), autoři Gentoo Linuxu připravili dvě CD, která nám instalaci co nejvíce ulehčí a zrychlí, ale i tak se kompilaci prostě nevyhneme.
Sháníme instalační média
Na stránkách projektu obdržíte seznam všech oficiálních zrcadlících serverů, vyberte si nejbližší (v současné době je jeden z České republiky) a podívejte se do adresáře releases/x86/2005.0. I když se dá Gentoo instalovat přímo z běžící distribuce, bude pro většinu běžných uživatelů Linuxu schůdnější použít live CD.
První bootovatelné CD (install-x86-universal-2005.0.iso) objevíte ve složce installcd a obsahuje základní soubory pro sestavení plně funkčního Gentoo systému. Druhé schované ve složce packagescd (s názvem packages-x86-2005.0.iso) je naplněno hromadou binárních balíčků pro zrychlení instalačního procesu.
Druhé CD se nachází v několika variantách optimalizovaných pro různé procesory (Pentium3, Pentium4, AthlonXP, i686). Bohužel na oficiálních zrcadlech je jen verze pro i386, která sice funguje na všech běžných procesorech Intelu a AMD, ale je pomalejší. Pro to, abyste stáhli binární CD optimalizované např. pro Pentium4, musíte sáhnout po BitTorrentu, kde se CD nacházejí.
Vybaveni těmito dvěma optickými disky už dokážeme nainstalovat Gentoo za jedno odpoledne i na počítač ochuzený o připojení na Internet. Instalace programů totiž probíhá příkazem emerge, který automaticky stáhne aktuální zdrojový kód, aplikuje volitelné záplaty, balíček zkompiluje, poznačí si veškeré informace a vytvořené soubory a teprve pak celý program nakopíruje do systému (spojí jej - od toho angl. slovo "merge"). Jelikož k prvnímu kroku je nutný Internet, jsou binární balíčky výhodné u počítačů s pomalejším (nebo žádným) připojením. Zkrátí se tak i doba instalace (není nutné kompilovat všechny programy).
Ještě než začneme, doporučuji zazálohovat adresář /etc, pokud již používáte nějaký jiný Linux (Mandrakelinux, Red Hat, SUSE...). Nastavení se bude hodit - zejména serveru X.
Zavedení live CD
Po nabootování z live CD vás přivítá nejdokonalejší instalační nástroj všech dob, blikající příkazová řádka. Budeme provádět všechny kroky jako při instalaci binární distribuce, ale místo klikání na ikonky budeme zadávat systémové příkazy. Tím výměnou za uživatelskou přívětivost získáme maximální kontrolu nad celým instalačním procesem.
Nejprve doporučuji změnit heslo superuživatele, které bylo při startu live CD náhodně vygenerováno. To v případě, že byste se nechtěně odhlásili z konzole a potřebovali se znovu přihlásit. Příkaz passwd asi už znáte.
Dělíme disky na kousky
Prostor na hraní si připravíme příkazem fdisk. Důrazně doporučuji disk rozdělit minimálně na tři části. První oddíl (/dev/hda1) o velikosti 32-64MB bude sloužit jako skladiště linuxových jader a zavaděče. Úkolem 512MB velkého odkládacího oddílu (/dev/hda2) bude držet systém nad vodou i při paměťově náročných procesech. Ze zbytku místa (/dev/hda3) stvoříme prostor pro náš budoucí "linuxový svět".
# fdisk /dev/hda
Nezapomeňte nastavit první oddíl jako bootovací a změnit id druhého oddílu na swap. Program fdisk má poněkud spartánské rozhraní, v poznámce na okraji vysvětluji základní příkazy. Na konci všechny změny potvrďte příkazem "w" - před touto akcí se však ještě jednou zamyslete, jestli máte všechny soubory na disku /dev/hda zálohovány! Data budou vymazána! Pokud by vám snad fdisk nevyhovoval, můžete pustit program cfdisk, který má o něco pohodlnější ovládání.
Důležité volby nástroje fdisk: m - nápověda n - přidá nový diskový oddíl d - smaže diskový oddíl p - vypíše tabulku rozdělení disku t - změní id diskového oddílu a - přepne příznak "startovací" d - smaže diskový oddíl m - vypíše nápovědu n - vytvoří nový diskový oddíl p - vypíše tabulku rozdělení disku q - ukončí program bez uložení změn t - změní id diskového oddílu w - uloží tabulku rozdělení disku a ukončí program
Zapínáme odkládací prostor
Nahození swapu probíhá ve dvou fázích. V první vytvoříme jeho strukturu pomocí programu mkswap a pak již stačí příkazem swapon přidat odkládací prostor do systému, který jej ihned začne používat. Pomocí programu top si můžete ověřit, zda zapnutí swapu proběhlo v pořádku. Top ukončíte klávesou [q].
# mkswap /dev/hda2 # swapon /dev/hda2 # top
Připojujeme kořenový svazek
Vytvoříme žurnálový filesystém ext3, který připojíme na /mnt/gentoo.
# mke2fs -j /dev/hda3 # mount -t ext3 /dev/hda3 /mnt/gentoo
V tuto chvíli již máme vytvořen na disku souborový systém - můžeme na něj kopírovat soubory a normálně jej používat. Systém by se u něj však zatím nezavedl.
A proč doporučuji ext3? Je to kvalitní a stabilní souborový systém zpětně kompatibilní s ext2. Alternativou mohou být systémy ReiserFS nebo XFS - vytvořit je můžete příkazy mkreiserfs nebo mkfs.xfs.
Doporučuji prozkoumat dokumentaci k souborovému systému ext3. Při jeho vytváření (nebo i později programem tune2fs) můžete systém vyladit pro svoje potřeby - pokud například hodláte stříhat digitální video a audio, vyplatí se změnit velikost alokačního bloku. "Pohrát" si můžete také s nastavením žurnálu.
Vytváříme strukturu adresářů
Zvlášť vytvoříme přípojné místo pro zaváděcí oddíl /mnt/gentoo/boot. Nástroj mke2fs se postará o vytvoření filesystému ext2 (který je nutno později zakompilovat do jádra), který následně připojíme do naší struktury adresářů.
Zaváděcí oddíl vytváříme zvlášť z několika důvodů. Tím nejdůležitějším je fakt, že některé základní desky nejsou schopny zavést systém ze "vzdálených" oddílů (míněno od logického začátku disku).
# mkdir /mnt/gentoo/boot # mke2fs /dev/hda1 # mount /dev/hda1 /mnt/gentoo/boot
My se budeme věnovat instalaci stage3, což je třetí - nejrychlejší - varianta. Nebudeme kompilovat základní nástroje a kompilátor - pouze je nakopírujeme na prázdný disk.
O vytvoření zbytku adresářů se postará zabalený stage3. Rozbalení provedeme standardně programem tar.
# tar -xvjpf /mnt/cdrom/stages/stage3-x86-2005.0.tar.bz2 -C \\ /mnt/gentoo/
Volby k příkazu tar:
x - extrahuje tarball
v - vypisuje názvy právě rozbalených souborů
j - dekomprese bzip2
p - zachovává práva souborů
f - vstup je soubor za volbou
C - rozbalí tarball do cesty uvedené za volbou
Nakonec ještě připojíme proc pseudo FS, aby nové Gentoo mělo přístup k aktuálním informacím o počítači.
# mount -t proc none /mnt/gentoo/proc
Pokud máte procesor Pentium2, Pentium3, AthlonXP nebo i686 kompatibilní, zvolte stage3 optimalizovanou pro váš procesor. Všechny, které jsou na Live CD 2005.0 k dispozici, zjistíte příkazem ls /mnt/cdrom/stages. Jelikož je Live CD připraveno stabilnějším kompilátorem GCC 3.3.X, pro procesory Pentium-M (Centrino) a Celeron-M musíte použít i686.
Instalace portage
Gentoo disponuje efektivním "balíčkovacím" systémem portage, nad kterým operuje výkonný nástroj emerge. Proč slovo "balíček" v uvozovkách? Balíčky jsou totiž jen vedlejším produktem programu emerge - jeho hlavním úkolem je stahovat, kompilovat a instalovat. Ačkoliv se "balíčkům" jako takovým říká ebuild, budu používat daleko přijatelnější "balíček".
Ebuild je vlastně jen recept, podle kterého nám emerge program "uvaří" - tedy přeloží a nainstaluje. V ebuildu se dočte, co potřebuje ke běhu, kde sehnat zdrojové kódy, jak je zkompilovat a nakonec jak program v binární podobě nainstalovat do systému.
Portage naleznete zabalený na cd ve složce snapshots na live CD. Rozbalte jej za pomocí nástroje tar. Když se podíváte do struktury portage, zjistíte, že všechny ebuildy jsou pro přehlednost rozděleny do kategorií.
# tar -xvjf /mnt/cdrom/snapshots/portage-20050303.tar.bz2 -C /mnt/gentoo/usr # ls /mnt/gentoo/usr/portage
Program emerge se nainstaloval spolu s tarballem stage3, my jsme nakopírovali právě jen onu "kuchařku" - té se říká portage nebo-li portage-tree. Strom proto, že každý balíček patří do kategorie.
Emerge stahuje všechny soubory do adresáře /usr/portage/distfiles a protože my budeme chtít instalovat některé programy bez použití Internetu, musíme tento adresář nakrmit zdrojovými kódy. Pokud emerge zjistí, že aktuální verze byla již stažena a souhlasí její kontrolní kód, nebude aplikaci znovu stahovat. Jak prosté.
# cp -Rv /mnt/cdrom/distfiles /mnt/gentoo/usr/portage/
Vozidlo máme připravené k první jízdě, zbývá nám jen nainstalovat linuxové jádro, motor celého systému.
Chroot
Až doposud všechny příkazy vyhodnocoval bash spuštěný z CD. Nyní použijeme program chroot, který je schopen změnit aktuální kořenový adresář.
Nyní nastává zlomový okamžik, po aktivaci příkazu chroot začíná Gentoo Linux ožívat, od této chvíle se budou spouštět programy z disku. Pro hladší přechod použijeme env-update a načteme profil pro bash. Nezapomeňte si změnit root heslo pomocí programu passwd, ať si systém před sebou neuzamknete.
# chroot /mnt/gentoo # env-update # source /etc/profile # passwd
Pokud na změnu hesla zapomenete, nic se neděje. Po prvním startu zjistíte, že se nemůžete přihlásit. Inu, stalo se to mnohým z nás - nabootujte znovu Live CD, připojte /mnt/gentoo příkazem mount, proveďte znovu chroot a pomocí passwd heslo změňte a rebootujte.
Kompilace kernelu
Pro začátek si nastavíme časovou zónu.
#ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime
O rozbalení zdrojových kódů kernelu požádáme emerge. Máme dvě možnosti - nainstalovat kernel ručně, nebo využít nástroje genkernel, který jádro automaticky přeloží a nainstaluje. Nevýhodou je však, že přeloží všechny moduly - a to trvá o něco déle.
Volím druhou možnosti - nástroj genkernel. Nyní se už stačí obrnit trpělivostí, protože spuštěním genkernelu odstartujete kompilaci jádra, která na slabších strojích může trvat i několik hodin.
# emerge gentoo-sources # emerge genkernel # genkernel --udev all
Program genkernel má mnoho parametrů, kterými můžete jádro ovlivnit. Prozkoumejte je - rozhodně stojí za to aktivovat menuconfig a "vyházet" některé nepotřebné věci. Kompilace se zrychlí.
Genkernel nám vytvořil hromadu modulů pro jádro, které uložil do složky /lib/modules/, abychom nemuseli pracně rozhodovat, které moduly se budou nahrávat do jádra, nainstalujeme pomocí emerge programy coldplug a hotplug. Ony udělají tuto nelehkou práci za nás. Gentoo zavádí dvě běhové úrovně - boot a default. Coldplug přidáme pomocí rc-update do úrovně nezbytné pro běh systému a hotplug zařadíme do standardní úrovně. Pro kontrolu zavedení spusťte rc-status.
# emerge coldplug # rc-update add coldplug boot # emerge hotplug # rc-update add hotplug default # rc-status -a
Pokud přeci jen chcete nějaké moduly zavést ručně, prozkoumejte adresář /etc/modules.autoload.d/.