Gentoo Linux FAQ

23. 4. 2003
Doba čtení: 11 minut

Sdílet

Máte rádi vše pod kontrolou? Nelíbí se vám, když počítač rozhoduje za vás a instaluje systém po svém? Možná jste již přemýšleli o Gentoo Linuxu. Dnešní článek se snaží Gentoo stručně představit, ale hlavně přináší spousta odpovědí na otázky, které vás nejspíš v souvislosti s tímto Linuxem napadají.

„Na počátku bylo slovo. Segfault.“

RPM z mého oblíbeného Mandrake začalo stávkovat. Nemoha s ním hnout, jsem zauvažoval o reinstalaci (jak už je u této distribuce zvykem).

Jsem člověk, který až nelidsky miluje struktury, přehlednost, jednoduchost a účinnost (můj stůl na to nevypadá). Mandrake byl skvělý pro přechod z Windows, jenže postupem času se začal mému stolu až příliš podobat, tak jsem do něho bouchnul a zkusil Gentoo. Abych pravdu řekl, vybral jsem si ho díky dokonale propracovaným stránkám a Larrymu:

Gentoo Linux... in a poster

„K Linuxu jsem nepřešel proto, abych znovu našel Windows.“

Mandrake se snaží být jako Windows.
Konfigurace pomocí textových souborů mi vyhovuje více. Rychle se dá změnit, zálohovat, přenést atd. Předpokladem ruční konfigurace je však intuitivní nalezení samotného souboru a dále vyznání se v něm. To je v Mandrake problém – pokud už jsou konfigurační soubory okomentovány, tak velmi zběžně. Grafickými nástroji je pak už jen „doděláte“.
Gentoo sám o sobě nenabízí žádná grafická nastavovátka, zato přehledné konfigurační soubory, které jsou přehledně umístěny a navíc obsahují poznámky, co ještě je třeba zapnout, aby dotyčná věc fungovala. (Samozřejmě máte k dispozici webmin, což je obecně dostupný projekt, a tak by to mělo být, myslím, se vším – ne jako MDK, Suse, které mají své speciální nastavovací nástroje)

Abyste se mohli sami přesvědčit, sbalil jsem své /etc.

„Síla Linuxu nespočívá v jeho instalačním programu.“

Gentoo nemá instalační program. To však neznamená, že ho nelze nainstalovat.

Dovolím si tvrdit, že:

  1. instalaci zvládne každý, kdo má s Linuxem aspoň trochu zkušeností
  2. se možná naučíte řadu zajímavých věcí
  3. vám tento způsob instalace dává plnou svobodu
  4. v systému budete mít pouze balíčky, které chcete. Případné nežádoucí závislosti můžete ovlivnit.

Doporučuji pročíst článek, který již dříve vyšel na ROOTovi (Gentoo Linux – vezměte svůj Linux do vlastních rukou) a Abclinuxu, dále navštívit stránky www.gentoo.org, kde naleznete POLOPATICKOU dokumentaci krok za krokem.

Pozn.: Abych nemusel příště instalovat ručně, zapsal jsem si postup do skriptu, takže jsem si vlastně vyrobil instalační program.

Instalovat je možné:

  • z instalačního cd po rebootu, pak budete muset nastavit síť (prvouživatelům nedoporučuji).
  • ve stávající distribuci tzv. chrootovaně. To znamená, že vyrobíte umělý adresářový kořen / v některém podadresáři opravdového kořene. Přitom využijete fungující sítě a můžete dělat cokoli jiného.

    Instalace spočívá ve stáhnutí jednoho ze tří souborů „stage-*.tar.gz“. Pokud budete chtít zkompilovat distribuci úplně od nuly (from scratch), stáhněte si stage1. Zkompilují se tak gcc, glibc,… Tím se dostanete do další fáze (stage2). Jestliže si stáhnete rovnou stage2, budete v tomtéž bodě rovnou, ale bez optimalizace pro váš počítač. Obdobně stage3. Instalační CD obsahuje právě tyto tři soubory + již předkompilovanou Mozillu, OpenOffice, XFree, Gnome a KDE. Doporučuji však kompilaci od nuly, protože jen tak dosáhnete maximální rychlosti aplikací.

Pozn.: Možná vás zarazí, že se defaultně instaluje grub. Podle mých zkušeností se osvědčil lépe než LILO, zvláště když bootujete z jiného než prvního harddisku.
Navíc je v /boot pěkně uklizeno :-)

Screenshots

nesmí chybět screenshot s GIMPem :)

/etc
Opera GIMP OpenOffice.org - 1984

Gentoo Linux FAQ

Jak je systém po kompilaci pro konkrétní procesor rychlý?

Asi o 10% rychlejší. KDE 3.1 v Mandrake startovaly cca 10 s, v Gentoo asi 6 s. Navíc vše můžete zkompilovat s USE=„pic“ a pak použít prelink.

Co mám udělat ze všeho nejdřív?

Zazálohovat funkční /etc z vaší distribuce. Usnadní vám to nastavování nového /etc. Zvláště soubory /etc/X11/XF86Config a XF86Config-4 vygenerované v Mandrake se mohou hodit.

Je Gentoo konzervativní?

Naopak. Jsem stále up-to-date a nečekám půl roku na další verzi distribuce. Gentoo se aktualizuje průběžně. Pokud není nejaktuálnější balíček k dispozici, obvykle je ve verzi unstable (která většinou bez problému funguje). Stabilita balíčku v provozních podmínkách závisí spíš na samotném zdrojovém kódu než na ebuildu. Chybný ebuild se projeví tak, že ho prostě nenainstalujete (není problém chybu opravit).

Obsahuje všechny známé balíčky?

Ano. Exotické balíčky si zkompilujete z tar.gz souborů. Například na screenshotech vidíte KDE téma Mandrake-Galaxy, pro něž neexistuje ebuild, ale není problém ho vytvořit.

Je kompilace vždy na poprvé?

Z 98% ano, pokud dojde k chybě, není těžké ji opravit. Jestli jste někdy ručně kompilovali, jistě budete překvapeni, jak jde vše hladce. V jiné distribuci se mi nestalo, že bych nainstaloval wine, fungovalo napoprvé a dokonce v něm přehrával WinAmp a fungovala sít.

Jak je to s bezpečností Gentoo?

Vše je defaultně vypnuto, tj. secure. Ruční zapnutí není vůbec problém, skoro vše je otázkou editace souborů v /etc/conf.d, příp. /etc/xinetd.conf a /etc/xinetd/

/etc/env.d a /etc/conf.d
/etc/conf.d/net

Bezpečnostní updaty mají nejvyšší prioritu, takže jsou dostupné stejně rychle jako v jiných distribucích. Upozornění na ně najdete v gentoo fóru.

Je Gentoo vhodný na server?

Ano. Používám ho i na serveru. V chrootu mám jeho „obraz“, a když potřebuji aktualizaci, zkompiluji (tj. i vyzkouším) balíček u sebe a pak ho přenesu na server již zkompilovaný.

Je v Gentoo balíčkovací systém?

Nazývá se Portage. Je napsán v Pythonu a jako databázi používá obyčejnou adresářovou strukturu. Vše se obsluhuje jediným příkazem „emerge“, který provede stažení, kompilaci, instalaci, uninstalaci atd. Nebo můžete využít nízkoúrovňového „ebuild“ a dělat vše po krocích ( emerge mozilla = ebuild mozilla fetch unpack compile preinstall install postinstall). V /usr/portage najdete strom instalovatelných balíčků. Jsou to soubory, které končí .ebuild a popisují, jak se má zdrojový kód zkompilovat.
Aktualizaci tohoto stromu provedete emerge -sync.

Lze používat rpm?

Ano, ale nechápu proč. Musíte si uvědomit, že problém budou dělat závislosti. rpm si bude myslet, že balíček instalovaný pomocí Portage v systému není (vyřeší argument –nodeps). Bude docházet k přepisům stejnojmenných souborů instalovaných Portagem, problémům při odinstalování apod.

Proč nezůstat v Mandrake a nepoužívat ke kompilaci  rpm --rebuild?

Jestli se vám to zdá pohodlnější, vaše věc, ale: budete si muset napsat skript řešící frontu, vyjmenovat parametry pro ./configure a nejspíš i vyřešit závislosti. O updatech ani nemluvě.

emerge -sync nefunguje.

Vaše sít zřejmě nepovoluje jeho port. Vygooglujte skript emerge-webrsync, který udělá totéž, a to tak, že wgetem nejdřív stáhne zabzip2ovaný strom ebuildů a pak ho rozbalí do /usr/portage.

Lze při kompilaci vytvořit binární balíček (např. pro použití jinde)?

Jistě. Důkazem je instalační CD obsahující Mozillu, XFree,… Zkompilují se přitom všechny závislosti, takže výsledkem bude i několik balíčků.

Source Mage GNU/Linux stahuje balíčky z nativních adres toho kterého balíčku. Jak Gentoo?

Gentoo má v prvé řadě nadefinována zrcadla (v /etc/make.conf). Pokud všechna selžou, stahuje se z nativního umístění. Jako nejrychlejší se mi osvědčilo zrcadlo ftp.tu-clausthal.de/pub/li­nux/gentoo.

Je možné kompilovat běžným způsobem?

Samozřejmě. Standardně do /usr/local. Dokonce je defaultně v PATH.

Kde zjistím informace o bezpečnostních updatech?

gentoo fóru.

Jak rychlé jsou kompilace?

Na mém 1300MHz zvládnu celý systém až po KDE s OpenOffice přes víkend (nejlépe je udělat si výlet a nechat počítač kompilovat).

Možná je to o 10% rychlejší, ale kompiluje se to několik dnů.

Kompilovat ale můžete v chrootu a dělat přitom cokoli jiného, navíc občasný víkendový výlet (jedno kam :-)) neuškodí. Nic nedokáže nervovat tak jako pomalé odezvy, byť se jedná o milisekundy. Navíc neříkám, že updatuji denně. Maximálně bezpečnostní updaty, které bývají hotové velmi rychle. Celý systém updatuji jen občas, když někam odjíždím na delší dobu.

Je možné kompilovat více věcí najednou?

Na dvou konzolích najednou nedoporučuji kvůli závislostem (zjišťují se jen na začátku). Tím by se jeden a tentýž balíček mohl emergovat zároveň. Lepší je použít frontu
  emerge kde mozilla openoffice ...

Jak vyhledat balíčky podle jména?

emerge -s balíček 

Lze balíčky předstáhnout?

Ano. To je dobré zejména, když nemáte přístup k síti nebo chcete předejít výpadku sítě, pokud kompilujete přes víkend. emerge -f mozilla k3b stáhne vše potřebné pro Mozillu a k3b.

Jak se lze podívat, co bude Portage instalovat (závislosti)?

emerge -up mozilla 

Jak updatovat balíčky?

emerge mozilla 

Jak odinstalovat balíčky, na něž neukazují žádné závislosti?

emerge depclean 

Co je to ebuild a class?

V emerge kde  není „kde“ ebuild, nýbrž class. Class je soubor ebuildů, které jsou nutné pro běh KDE (kdebase, kdearts, kdeartwork,…). Jinými slovy, kdebase, kdearts jsou jednotlivé ebuildy a kde je „superbalíček“.

Jak nastavím, že chci instalovat unstable balíček?

v /etc/make.conf nastavte ACCEPT_KEYWORDS na „~x86“ (s tildou). Portage se vždy dívá do ebuildů a instaluje ten s nejvyšší verzí a zároveň vyhovující masce (ACCEPT_KEYWORDS).

Jak aktualizovat celý systém?

emerge -u world 

Jak nastavit kompilátor pro můj procesor?

Základem je soubor /etc/make.conf, v němž je nastavení kompilátoru a balíčkovacího systému Portage. Parametry pro ./configure jsou ovládány proměnnou USE.

Jak nastavit USE?

USE je defaultně nastavena tak, aby vše proběhlo OK. Není nutné do ní vyjmenovat vše. Defaultní nastavení je v /usr/portage/pro­files/defaults/u­se.default. Všechny možné parametry jsou v /usr/portage/pro­files/use.des­c.

Vždy zkusím, co se bude s programem instalovat, a podle toho USE upravím. Např. emerge -p php by chtělo nainstalovat spoustu věcí. Upravuji USE, dokud nejsem spokojen.

Naopak když vysloveně požaduji nějakou vlastnost, uvedu ji do USE. Vypnutí všech defaultních nastavení se provede USE=„-*“

Příklad mého USE: USE="X kde qt arts odbc postgres mysql gtk pic -java -gnome -alsa"

Jak zjistit, které USE balíček používá? (tj. které ovlivní kompilaci)

emerge -pv balíček 

Čím ovlivnit kompilátor?

Pomocí proměnné CFLAGS v /etc/make.conf

Příklad mých CFLAGS: CFLAGS="-march=athlon-tbird -O3 -pipe -s -fomit-frame-pointer -fexpensive-optimizations -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4"

Jak použít prelink?

Prelink je popsán v dokumentaci na stránkách Gentoo. Abyste ho mohli použít, musíte vše zkompilovat s USE=„pic“.

Lze celý systém překompilovat pro jiný procesor?

Ano. Pomocí emerge -e.

Jak je to se službami?

rc skripty jsou kompletně přepsány. Runlevely nejsou číslovány, ale mají názvy. Defaultní runlevel se jmenuje default (…). Runlevely jsou v /etc/runlevels. Skripty služeb jsou stejně jako v jiných distribucích v /etc/init.d s rozdílem, že nejsou spouštěny v pořadí s předřazenými čísly. Místo toho každý skript obsahuje „before *“, „after net“, „need net,xfs“, takže pokud chcete spustit xinetd, spustí se automaticky i net.

/etc/runlevels

Defaultně jsou služby vypnuty, takže když si nainstalujete XFree a chcete, aby se po startu spouštěly, musíte provést
rc-update add xdm default

Pro spuštění numlocku v runlevelech default a kancl
rc-update add numlock default kancl

Chcete-li odstranit službu ze všech runlevelů, vynechte název runlevelu
  rc-update del net

Kde je můj oblíbený, přehledný /etc/sysconfig?

V Gentoo se jeho přehlednější podoba jmenuje /etc/conf.d
Tam jsou soubory, které ovládají /etc/init.d. Tento adresář je VELMI důležitý. Pamatujte, že vše je defaultně vypnuté, takže pro povolení php je nutné editovat /etc/conf.d/apache a odmřížkovat konkrétní řádek.

Jak nastavit vlastní cestu do PATH a jiné proměnné?

  1. lokálně do svého ~/.bashrc
  2. globálně neupravujte /etc/profile. K přidávání proměnných slouží adresář /etc/env.d. V něm jsou soubory, které obsahují proměnné.
    Pozor! Soubory jsou čteny v abecedním pořadí a stejnojmenné proměnné jsou slučovány. To se provede pomocí env-update, které na základě proměnných vyřeší spoustu dalších věcí.
    /etc/conf.d

Jak nastavit české prostředí?

České prostředí je řízeno několika proměnnými (LANG=cs_CZ, …). Tyto proměnné napište do souboru třeba s názvem locale a umístěte do /etc/env.d. Pak proveďte env-update.

Jak říct, aby nahrával při startu moduly do jádra?

do /etc/modules.au­toload napište jejich seznam (co řádek, to modul).
např.

NVdriver
8139too
forte

Jak postupovat, když balíček nelze zkompilovat?

To může být způsobeno příliš „přiškrceným“ nastavením kompilátoru v /etc/make.conf nebo prostě chybou v ebuildu. Aktualizujte strom ebuildů, případně dotyčný ebuild v /usr/portage editujte. Další možnost je podívat se do /var/tmp/portage/*, kam se defaultně rozbaluje kompilovaný zdrojový kód, a pokusit se o ruční kompilaci pomocí standardního postupu ./configure a make. Tím můžete zjistit, jaký argument dělá problémy a z ebuildu ho odstranit nebo do něj doplnit. A konečně zkuste unstable ebuild či ebuild s jinou verzí.

Na koho se mám obrátit, když něco nevím?

Nejlepší je podívat se na Gentoo fórum, kde je vyhledávání.

Kde zjistím změny, k nimž došlo včera?

Na stránkách Gentoo v Daily CVS changelog.

Instaloval jsem unstable balíček, když chci aktualizovat systém (ale stable), Portage ho chce vyměnit za balíček s nižší verzí. Co dělat?

Nejjednodušší je upravit dotyčný ebuild a udělat z něho stable (nahradíte „~x86“ za „x86“. Portage pak sáhne po nejvyšší stable verzi, tedy po tomto balíčku, a nebude ho downgradovat. Lze též použít direktivu emerge, ale tato metoda se mi osvědčila jako nejjednodušší.

Které balíčky doporučujete?

Díky /usr/portage jsem našel spoustu programů, o jejichž existenci jsem vůbec nevěděl. vsftpd je ftp daemon, který má jen 90Kb a přitom zvládá veškeré běžné věci. ermixer je skvělý konzolový zvukový mixér.

/usr/portage

Další postřehy?

POSTGRESQL: v /etc/conf.d zapnout s argumentem -i; po emergování se musí vykonat „ebuild /usr/portage///*­.ebuild config“, který se postará o instalaci databáze do /var/lib/postgresql (téhož lze dosáhnout standardní cestou popsanou v dokumentaci PostgreSQL).

KCONTROL: pozor na editaci kdmrd pomocí správce přihlášení – smaže veškeré komentáře

MOD_PHP: php modul pro Apache – uncommentovat v /etc/conf.d/apache řádek s -D PHP4, jinak se modul nenatáhne a *.php se zobrazí jako text! Někdy je nutné zapnout modul ručně v konfiguráku apache, viz mé /etc.

JÁDRO: zahvězdičkovat filesystém, z něhož se bootuje (reiserfs) – ne jako modul. Pokud máte nvidii, povolte mtrr; není dobré mít v jádře framebuffer nvidie, ale jen vesa framebuffer, jinak se stává, že se z X přepnete do konzole a zpět už to nejde, a to fatálně. Možná je již vyřešeno, situace byla před dvěma měsíci.

VSFTPD: povolit xinetd v /etc/xinetd.conf a pak vsftpd v /etc/xinetd/ Též zakomentovat #only_from = localhost

ict ve školství 24

XFREE: po „emerge xfree“ nezapomente nastartovat font server
/etc/init.d/xfs start
jinak vám po „startx“ bude X server hlásit, že nenašel font „default fixed“

KDE: Přepínání cs/us klávesnice je velmi příjemné pomocí ALT-mezerník