Hlavní navigace

Linux From Scratch

Jan Heller

O projektu Linux From Scratch (LFS) se toho na českém Internetu zatím mnoho nenapsalo, přestože tato linuxová metadistribuce není již jen prostým HOWTO dokumentem, ale propracovanou knihou, která na podzim minulého roku vyšla ve verzi 6.0. Následující článek by si přál tuto situaci alespoň částečně zlepšit a přinést letmé seznámení s tímto zajímavým systémem.

Distribuce, nebo kniha o Linuxu?

Na začátku stál roku 1998 Gerard Beekmans. Gerhard nebyl spokojen se žádnou z tehdy nabízených distribucí, a rozhodl se proto vytvořit si vlastní systém ze zdrojových textů za pomoci již existující linuxové instalace. Tento nový systém nazval příhodně Linux From Scratch a své zkušenosti s ním shrnul v linuxovém HOWTO dokumentu. Neméně důležitým záměrem k jeho sepsání bylo dát uživateli možnost porozumět vnitřnímu fungování Linuxu. Popularita projektu rychle vzrůstala a z HOWTO se za pomoci komunity vývojářů stala elektronická kniha, kterou lze na webu projektu nalézt ve verzi 6.0; hlavní idea, didaktický charakter a otevřená licence nadále zůstávají. LFS je tedy skutečnou metadistribucí, protože výsledkem práce týmu okolo projektu LFS není několik CD nabitých balíčky jednotlivých programů, ale dokument podrobně popisující instalaci základního Linuxového systému. Svým charakterem metadistribuce má LFS blízko k mladšímu projektu Gentoo, kde však u Gentoo stojí portage s ebuildy a emerge, nastupuje u LFS kniha a klávesnice.

Proč chtít LFS?

Již z prvního odstavce je jistě zřejmé, že nainstalovat LFS asi nebude úplně snadné. Proč tedy nesáhnout po binární distribuci a probdít několik nocí nad ruční kompilací? Kniha uvádí důvodů hned několik:

  • naučit se, jak v Linuxu a GNU systému věci fungují,
  • získat více kontroly nad systémem bez spoléhání se na nastavení někoho jiného (odtud i podtitul distribuce – „Your Distro. Your Rules.“)
  • možnost sestavit velice malý linuxový systém (menší než 100 MB),
  • bezpečnost získaná vlastnoručním aplikováním patchů na zdrojové kódy.

První dva důvody budou asi pro většinu lidí tím, proč se pro LFS rozhodnou. Jedno je však jisté – LFS není správná volba pro někoho, kdo ještě nikdy s Linuxem či Unixovým systémem nepracoval, nebo pro začátečníka, který neumí pracovat se základními příkazy typu ls, cp, mv, či který se domnívá, že M4 je zpravodajská agentura a mount /dev/hda himalájská osmitisícovka. Problémem pro některé uživatele by také mohl být fakt, že dosud neexistuje český překlad knihy. Zbudování LFS je poměrně náročné a nezdar na první pokus proto není výjimkou.

Před instalací

LFS verze 6.0 je založeno na gcc-3.4.1, glibc-2.3.4–20040701, binutils-2.15.91.0.2 a kernelu 2.6.8.1. Libovolný balíček v LFS lze samozřejmě nahradit verzí novější, ovšem za podmínky, že víte, co děláte. Alespoň napoprvé je vhodné držet se hesla fbbg – „Follow Book, Book Good.“. Ačkoli hlavní ideou LFS je tvorba systému „dle svého“, drží se kniha v hlavních částech linuxových standardů, a to např. Filesystem Hierarchy Standard či The Linux Standard Base a jako init systém nabízí Sysvinit, takže i bez velkého přemýšlení lze získat standardně použitelný linuxový systém.

LFS může zkušený uživatel na rychlém počítači sestavit za půl dne, ovšem horní hranice je neomezená – záleží na rychlosti stroje a vaší trpělivosti. Pokud se rozhodnete gcc-3.4.1 nahradit verzí 2.95.x, může se kompilace urychlit, neboť gcc-2.95.x pracuje o kousek rychleji než řada 3. Kniha u každého balíčku uvádí dobu potřebnou k jeho překladu, a to v poměrných jednotkách SBU – Static Binutils Unit – které jsou podílem dob potřebných k překladu aktuálního balíčku a prvního balíčku, kterým je binutils. U většiny balíčků jsou k dispozici poinstalační testy, které kontrolují správnost překladu, a kniha je v mnoha případech doporučuje provádět. Tyto testy však často trvají mnohonásobně déle než samotný překlad, proto pro uživatele s pomalejšími stroji stojí za to zvážit, zda je spouštět či ne.

Před vlastní instalací je také vhodné se rozhodnout pro některou z gcc optimalizací. Nejjednodušší pro optimalizaci rychlosti by mohlo být nastavit před začátkem instalace proměnné CFLAGS resp. CXXFLAGS, např. v bashi takto:

export CFLAGS="-O3 -march=<architektura>"
export CXXFLAGS=$CFLAGS

kde „<architektura>“ může být například „athlon-xp“ či „pentium4“. K volbě „-O3“ je však třeba přistupovat opatrně, protože cenou za marginální zvýšení rychlosti výsledné binárky může být podstatné zvýšení její velikosti a nestabilita –„-O2“ je proto mnohdy lepší volbou. Nejlepší je samozřejmě konzultovat dokumentaci gcc a vybrat správně řešení na míru.

Instalace LFS

Ke zbudování LFS ve verzi 6.0 je zapotřebí alespoň 1.3GB partition, linuxová distribuce s jádrem minimálně 2.6.2 zkompilovaným gcc-3.0 či vyšším, zdrojové kódy programů, patche a moře volného času. Balíčků je v LFS přes padesát a lze je stáhnout jednotlivě z jejich oficiálních webů, získat jako jeden tarball (~ 133 MB), nebo na LFS LiveCD (~ 332 MB). Live CD je určeno pro instalaci LFS bez nutnosti instalace jiné distribuce na disk a je založeno jak jinak než na LFS. Kromě balíčků obsahuje LFS knihu, X Window System a Firefox pro její pohodlné čtení. Instalace systému probíhá ve čtyřech krocích:

  1. Vytvoření dočasného miniLFS. Ten se vytváří v chrootu z pomocné linuxového systému. LFS tedy neřeší problém slepice a vejce a nové gcc kompiluje kompilátorem z pomocné distribuce. Vytvořením miniLFS a jeho následným použitím k instalaci opravdového LFS systému se vyhneme závislostem – ve smyslu sdílených knihoven apod. – na pomocné distribuci. Autoři LFS uvádějí, že v knize popsaný postup tvorby dočasného minisystému není ideální, o to však je didaktičtější.
  2. Tvorba samotného LFS systému, nyní již za pomoci nástrojů z dočasného miniLFS. Pro ukrácení dlouhé chvíle při kompilování si lze v knize přečíst popis všech výsledných binárních programů, které právě kompilovaný balíček poskytuje.
  3. Příprava bootovacích skriptů a poladění konfiguračních souborů v adresáři /etc.
  4. Posledním krokem je kompilace vlastního jádra a nakonec zajištění bootovatelnosti systému, k čemuž kniha používá zavadeč GRUB.

Hotovo. Nyní zbývá již jen nabootovat do zbrusu nového LFS systému.

Mám bash prompt. Co dál?

LFS neobsahuje žádné uživatelské programy, pouze základní systém potřebný pro nabootování počítače do shellu a kompilaci. Pro studijní účely to možná postačuje, ale k tomu, aby byl nový systém použitelný, ať už jako server, či desktop, je nutno vyvinout ještě další úsilí. Toto usilí se pokouší zmírnit jiná část projektu LFS, pro změnu opět kniha – Beyond LFS, jejímž autorem je Larry Lawrence. BLFS obsahuje popisy instalací všeho od nejrůznějších utilit a knihoven přes Postfix a TeX po KDE či Gnome. Najdeme zde vše, co bychom očekávali v „plnohodnotné“dis­tribuci. V BLFS je již didaktická stránka věci notně potlačena a popis instalací se redukuje na výčet závislostí, doby překladu a příkazů k němu potřebných. Dalšími podprojekty LFS jsou Automated LFS, který se, na první pohled poněkud paradoxně, snaží o automatizaci instalačního procesu, a Hardened LFS, jenž se zaměřuje na zlepšení bezpečnostních nastavení a zvýšení bezpečnosti v LFS vůbec. Dále je na webu LFS udržována sbírka krátkých HOWTO dokumentů nazývaných Hints a obsahujících návody na instalaci těch programů, které v knihách nejsou, či návody na alternativní instalační metody. Ačkoli kvalita těchto dokumentů, sepsaných přímo uživateli, značně kolísá, neměly by uniknout pozornosti nikoho, kdo to s užíváním LFS myslí vážně.

Co lze od LFS očekávat?

Od LFS lze na 100 % očekávát dlouhé hodiny strávené kompilováním, googlováním chybových hlášení gcc a dalším kompilováním – nějaký ten vlas určitě zešediví. To by však nemělo nikoho odradit, protože pocit z vlastnoručně sestaveného a na míru optimalizovaného systému za to stojí. Jestli bude LFS i přínosem k hlubšímu pochopení toho, jak Linux funguje, záleží již na osobním přístupu. Zkopírováním příkazů z knihy do konzole zvládne nainstalovat LFS „kdekdo“, ještě to ale neznamená, že ví, co příkazy znamenají. Pokud by někdo přes veškerou snahu nemohl odolat použití copy&paste na úplně každý příkaz v knize, může si na webu LFS objednat tištěný výtisk knihy. Bude nucen všechno poctivě naťukat a ještě tak přispěje na další vývoj projektu.

Našli jste v článku chybu?

10. 2. 2005 15:44

uživatel si přál zůstat v anonymitě
(B)LFS je podle mě opravdu nejlepší. Používal jsem RedHat 5, 6, 7, 8, 9, Fedora Core 1 a - najedenou jsem poznal LFS. První sestavení bylo na dlouho, ale když jsem to dělal podruhý a potřetí a počtvrtý, získal jsem už jistou rutinu. Sice upgradování softwaru na serveru dá trochu práce (není to sestava příkazů jako: upgraduj mi SQL, upgraduj mi APACHE, upgraduj mi PHP, upgraduj mi jánevímcoještě), ale stojí to za to. Ten požitek z dobře vykonané práce je k nezaplacení.

10. 2. 2005 10:15

uživatel si přál zůstat v anonymitě
Hmm, musím přiznat, že mě v diskuzích už označili za
kde co, ale s fanatikem jste první! Gratuluji.
Pravda je ovšem, jak už to bývá, trochu jinde.
Linux mám na svém domácím stroji, kromě jiného,
z čistého a upřímného fandovství již mnoho let
(Pozor! Nemyslím to "upřímně" jako standa grosův!).
A ten první bod, co jsem napsal
mě už řadu let trápí, což se do budoucna asi nezmění.
Tím, že jsem úplně nepochopil Vaši závorku (FC1 OK) si
zasloužím přeřazení do kategorie fanatik? Myslím, že ne…








Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Brněnský radní chce zničit kartel operátorů. Uspěje?

Brněnský radní chce zničit kartel operátorů. Uspěje?

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Jedlé kaštany jsou trpké, je třeba je tepelně upravit

Jedlé kaštany jsou trpké, je třeba je tepelně upravit

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu