Pravda o používání Gentoo GNU/Linuxu

Verze pro tiskPDF verze

Tento článek jsem se chystal napsat již delší dobu, protože spousta lidí neznalých věci si funkce Gentoo a jeho používání špatně vykládá a nebo jsou špatně informovaní. Budu se zde věnovat správě systému, používání programů pro práci s Portage a uvedu na pravou míru fámy o používání této velice vyspělé distribuce.

Slovo úvodem

Když jsem se začínal seznamovat s GNU/Linuxem, tak jsem předem věděl, že nepůjde o procházku růžovým sadem. Byl to pro mě naprosto jiný systém, který řešil věci a vnitřní pochody jinak. Určitě si každý vzpomíná na svůj první “styk“ s Linuxem. U mě to byl Mandrake, jehož instalační CD jsem dostal na konferenci BIST. Instalace typu další;další a už na mě poprvé koukal xmanager. Zadal jsem heslo a spustila se session grafického rozhraní KDE. To bylo všechno krásné, ale nic nového mi to nedalo. To jsem od Linuxu nechtěl, takže po pár hodinkách klikání jsem se začal nudit. Zároveň jsme se začali učit Linux ve škole, ale nyní už podstatně zajímavější věci jako mailové služby, routování, iptables, kompilace jádra, samba, časová synchronizace atd.

Vzhledem k tomu že jsem člověk chtivý informací a poznávání nových věcí, tak mě Linux začal hodně zajímat. Do doby než jsem si chtěl v mém Mandraku něco sám zkompilovat. Rychle jsem pochopil, že stabilita tohoto systému tkví nejen v dobrém kódu, ale ve filozofii, která prosazuje jednu aplikaci na konkrétní úlohu, tj. že každá aplikace dělá jen to co má a k ostatním službám používá jiné aplikace jako rozhraní. To v důsledku znamenalo shánět všelijaké potřebné knihovny a jiné podprogramy ke zkompilování i pouhého konzolového MP3 přehravače. Stačilo pár podobných zásahů a pohár trpělivosti přetekl. Sháněl jsem distribuci distribucí, která má již vyřešený tento problém se závislostmi a nebude mě otravovat s každou triviálností. Dalším kritériem byla jednoduchá, ale přesto vysoce přizpůsobytelná správa systému a možnost jednoduchého aktualizování aplikací, či aplikování bezpečnostních patchů. Vybral jsem opravdu dobře, když jsem sáhl po distribuci Gentoo, která toho ve skutečnosti splňuje daleko víc.

Konec všeho zlého, začátek Gentoo

Nebudu zde popisovat instalaci, ačkoliv si spousta lidí myslí, že je složitá a proto hned Gentoo zavrhují. A přitom pokud by začátečníci chtěli, tak od verze 2005-r1 je možná i gui instalace jako u ostatních distribucí. Jde o to jak se rozhodnete, ale podle mě je lepší instalace z příkazové řádky, protože se toho o systému hodně dozvíte a naučíte. Instalaci popisovat nebudu z prostého důvodu, protože je na to naprosto skvělý handbook, který provede i úplného začátečníka step-by-step celou instalací. Tento handbook (v češtině) můžete nálezt na adrese http://www.gentoo.org/doc/cs/handbook/handbook-x86.xml?full=1

Instalace vám zabere poměrne dlouhou dobu, protože Gentoo si všechno kompiluje (i kompilátor :o) ) sám, aby z vašeho HW vytěžil téměř maximum. Tohle spousta lidí odsuzuje, že to trvá dlouho a není možná offline instalace. Abych to uvedl na pravou míru, tak Gentoo lze instalovat z ruzných Stage a jaký si zvolíte, záleží jen na vás a na tom kolik času chcete instalaci věnovat + od verze Gentoo 2005.1 je možná i úplná offline instalace.
Stage1 - začíná od úplného začátku. Kompilujete base systém a neobsahuje nic kromě kompilátoru, Portage (systém pro správu “balíčků“) a ty úplně nejzákladnější balíčky.
Stage2 - obsahuje "bootstrapped", což je minimální prostředí pro sestavování dalších důležitých aplikací pro běh systému.
Stage3 - předkompilovaný minimální systém, který potřebuje pouze již několik voleb aplikací (logovací démon, bootovací manažer, síťové nástroje atd.)

Pokud se vám nedostáva času, tak klidně můžete začít instalací ze Stage3 a pak celý nastavený systém úplně překompilovat do nejoptimalizovanějšího stavu Stage1. Od verze 2005 je standardně v handbooku doporučení instalace ze stage3, ale z jaké stage pojedete, záleží jen na vás. To jsem uved jen jako argument k mému tvrzení, že instalace Gentoo nemusí nutně trvat 2 dny a máte možnost volby (u stage3 mi to trvalo asi 4 hodiny). Gentoo je celý o volbách, nic není dáné a vše si můžete přizpůsobit k obrazu svému. K věcem týkající se instalace a nastavením systému (USE flagy, ccache atd.) se nebudu již dále vracet. Vše co potřebujete, najdete v handbooku.

Gentoo – praxe

Máme nainstalovaný systém. Jak se o něj starat?
Vaším nejlepším kamarádem bude aplikace emerge. Emerge se stará o instalaci, odinstalaci a ověření aplikací, smazání nepotřebných aplikací starší verze, updatovaní systému do nejaktuálnějšího stavu a synchronizaci stromu aplikací.
Pokud se například bude snažit nainstalovat OpenSSH démona, tak zadáme jednuduše:

emerge openssh

A dále za nás všechno emerge udělá:
- připojí se na definovaný mirror, pokud nefunguje použije jiný z listu mirrorů
- zjistí z portage verzi stable nebo tu nejnovější (podle vašeho nastavení)
- zjistí závislosti a jejich případné patche podle verze GCC, net toolu atd. a ty stáhne
- rozbalí všechno stažené postupně podle závislosti
- zkontroluje md5 hash souboru
- aplikuje patche
- mimojiné ověří jestli v app nebyl nějaký bug a zkusí stáhnout patch z GLSA (Gentoo Linux Security Advisories)
- podle nastavených USE proměnných v make.conf vybere pro aplikaci flagy pro kompilování
- zkompiluje (kompilace je omezená přes NICE, takže se systémem lze normálně pracovat)
- nainstaluje
- smaže starou verzi aplikace
- ověří jestli app nepotřebuje novější typ konfiguráku

Krásné že :o)? Takto jednoduše nainstalujete nejnovější openssh kompilovaný podle vašeho HW, takže např. konexe budou zabírat míň systémových prostředků (a to že openssh umí být pěkný žrout).
Dále uvedu příkazy, které budete velmi často používat, takže je nutné je znát:

-- synchronizace stromu aplikací na nejnovější verze
emerge --sync

-- vypíše závislosti, které chce emerge stáhnout kvůli správné instalaci aplikace
emerge --pretend --verbose $app (nebo) emerge -pv $app

-- updatuje celý systém do nejaktuálnější verze i s knihovnamy
emerge -uD world (nebo) emerge --update --deep world

-- odinstaluje aplikaci ze systému
emerge -C aplikace

-- vyčistí systém od nepotřebných aplikací starší verze
emerge --clean

-- zjistí zda si nekolidují některé aplikace, nebo symbolické linky, opraví prostě systém a kolize rekompilací aplikací a knihoven. Pozn. u emerge -uD world se to provádí automaticky.
revdep-rebuild

-- zjistí zda nejsou k dispozici novější verze konfiguračních souborů a vy pak rozhodnete co s nimy.
etc-update

Tak a to je vše :o). Může se zdát, že toho je spousta, ale stejně jde jen o dva příkazy a během 2 dnů si to i bez manuálových stránek bude pamatovat každý. Ten systém tímto není komplikovaný, právě naopak. On za vás dělá spoustu práce a dokáže opravit vaše hrubé chyby (už jednou mě revdep-rebuild zachránil :o)).

-- ještě jedna věc pro gurmány, ale tato app je zatím v testování (podle mých zkušeností zatím funguje bezchybně).
-- zjistí z GLSA jaké se vyskytly bezpečnostní chyby v aplikacích a pokud takovou najde ve vašem systému, tak ji opatchuje a znovu zkompiluje.
glsa-check --fix all

Možná je úplně zbytečné co tu píšu, protože všechno a ještě mnohem víc toho najdete v Gentoo Handbooku, takže své zraky směřujte především tam. Šlo mi o to mít po ruce rychlý výcuc těch nejdůležitejších aplikací. A pro ty co rádi bádají, si můžou stáhnout balík gentoolkit, který obsahuje několik aplikací na správu systému a portage (např. zmiňované glsa-check)

Další možnosti a portage

Dokumentace - ta je u projektu Gentoo naprosto výborná a v současnosti se překládá i do češtiny. Najdete naprosto vše od práce s aplikacemi, přes nastavení kernelu a grafických rozhraní. Pro lidi jako jsem já i aplikování bezpečnostních mechanizmů (RSBAC, PaX, SELinux, GrSec atd.). Dalším zpestřením jsou diskuzní skupiny k tématům.
Jádra - můžete si vybrat z několika druhů kernelu. Vanilla jádro je zaměřěno hlavně na stabilitu, ale to u linuxu je tak nějak samozřejmost, takže je dobré se podívat po jiných, které jsou zaměřené např. na performanci, rychlou práci s pamětí, bezpečnostní mechanizmy, featury atd. Zde si můžete přečíst o kernelech zařazených do portage.
Portage - nejspíš je Portage udělaná po vzoru portů z FreeBSD. Co jsem diskutoval s lidma od BSD, tag developeři Gentoo udělali moc dobře a podstatně je vylepšily. Portage není jenom další aplikace která aktualizuje systém, ale je to technologie propletená celým systémem. To pochopí uživatelé a ne pasivní čtenáři článku.

Nejčastější omyly ohledně Gentoo

BFU: Gentoo pořád jenom kompiluje, takže s ním nemůžu pracovat.
-- hloupost, Gentoo používá omezování procesu pomocí NICE, takže běžně můžete kompilovat celý systém do aktuálního stavu a během toho surfovat, psát v openoffice, poslouchat muziku na xmms a nic nepoznáte. Mimochodem není pravdou že musíte jenom kompilovat. Například kompilovat OpenOffice je sadomasochizmus, takže #emerge openoffice-bin ;o)

BFU: Musím mít rychlé připojení k internetu.
-- nemusíte. pokud nechcete tak system nemusíte mít stále aktuální a můžete normálně pracovat. Stačí aktualizovat podle potřeby. Koukněte se na Debiany ;o)... několik let staré aplikace a přesto je některá individua mají na desktopech.

BFU: Proč pořád to kompilování ??
-- kompilovat nemusite, můžete stahovat binární balíčky jestli chcete. Pokud si však celý systém od základu zkompilujete sami, tak se vám práce se systémem znatelně zrychlí. Znám i maníky, kterým na notebooku nabootuje KDE sešna za 4 sekundy!!
-- další výhodou je, že v portage je spousta ruzných kernelů optimalizovaných pro výkon, flexibilitu, stabilitu a především bezpečnost [hardened jádra] atd.

Příznivci Debianu

Vždy když jsem s nimi mluvil, tak mi předhazovali apt-get, stabilitu atd. což mě vždycky rozesmálo. Jako kdyby to měli našprtaný od souseda, tak jeden od druhého pokládali ty samé argumenty téměř stejně za sebou ;o). Přitom je to jednoduché: apt-get je aplikace a do portage jí toho spousta chybí mimojiné proto, že portage ma ebuildy a je propletený celým systémem, takže jde o technologii, která se s apt-getem nedá v ničem srovnávat. Zkuste si kompletně updatnout systém. Mě to bude možná trvat na slabším počítači 2 dny (přesněji: jeden příkaz a odchod pryč), ale vám? A stabilita? Ta je založená na lety ověřených verzích aplikací, což je sice možná neznatelně stabilnější, ale určitě maximálně nezabezpečené, bez moderních featur a zvýšené performance.

Příznivci Slackwaru

U nich to byla hlavně doba kompilace, že mají také něco na balíčkování a že mají všechny konfiguráky přehledně na jednom místě. Takže jedem. Doba kompilace závisí na typu stage, na počtu binarních aplikací, samozřejmě na výkonu PC a na tom, že existuje GUI instalace. Takže podobné argumenty jdou stranou, Gentoo může bežet během 3 hodin. Shodnem se že o baličkovacím systému, který neřeší závislosti se nemá vůbec cenu bavit. I s většinou přiznivců slackwaru jsem k tomu došel. A to že jsou konfigurační soubory na jednom místě, tak tuhle hlášku jsem začal nesnášet. A jiný distribuce je dávaj do /tmp nebo co? Když hledám konfigurák, tak je to jednoduchý. Prostě /etc/app.conf nebo složka s názvem aplikace, dále může být v /etc/conf.d/, kde je drtivá vetšina všech nejdůležitejších nastavení systému (konzoli v utf-8 mam za 20 sekund, za jak dlouho vy?). Zbytek pak ve /usr, /usr/local nebo /var. Jestli je pro vás tak težký si tohle zapamatovat, tak bych rád připoměl že cestu ke konfiguráku lze definovat a tím pádem ho můžete mít kdekoliv + existuje pěkný příkaz whereis.

Nechci se hádat, nebo někomu Gentoo vnucovat. Předchozí dva odstavce nebyli myšleny špatně, ale je to jen taková prevence, protože z jiných serverů vím, že příznivci těchto distribucí sem přijdou a do diskuzí budou psát zase ty samé argumenty. Toť vše.

Závěr

Tento článek jsem sepsal kvůli tomu, že sice na rootu je nějakey ten článek, ale problémy se řeší až v diskuzích a nikdo nevytkne těm rádoby kritikům, že mluví úplné hlouposti. Taky proto, že jsem už o tématu mluvil s 20-ti lidmi minimálně a čím víc byli zažranější do své distribuce, tak tím déle jim trvalo, než jim docvaklo o čem Gentoo je a že jejich argumenty jsou úplně zcestné. A že jsem jich hodně přeordinoval na Gentoo. Sice to nebyl vůbec můj záměr, mě je jedno kdo má co za distro, ale oni ho po diskuzi chtěli vyzkoušet sami. Takže až zase narazím na nějakého “odborníka“, tak vím jakou URL mu poslat, abych si ušetřil svůj čas ;o)

Odkazy:

Gentoo Handbook CZ - http://www.gentoo.org/doc/cs/handbook/handbook-x86.xml?full=1
Gentoo Security Handbook - http://www.gentoo.org/doc/en/security/security-handbook.xml?full=1
Gentoo dokumentace - http://www.gentoo.org/doc/cs/
Gentoo fórum (obrovský zdroj informací) - http://forums.gentoo.org/
Gentoo ISO ke stažení - http://www.gentoo.org/main/en/where.xml