Provozujeme linuxový server (3) - volba distribuce I

Výběr distribuce na server velmi významně ovlivní práci administrátora – její vhodná volba může zefektivnit práci a současně vyžadovat této práce co nejméně.

7.3.2005 06:00 | Ondřej Čečák | přečteno 23056×

Co to je distribuce

Distribuce GNU/Linuxu by se asi dala nejlépe přirovnat k čokoládové bonboniéře – několik různých druhů bonbonů pěkně zabalených v krabici. Podobně jako výrobce bonboniéry postupuje i výrobce distribuce (nazývejme ho třeba distributor), místo čokolády si vezme linuxové jádro, hodně software, přihodí nějaké vlastní nástroje, patche a konfigurační soubory, úhledně to vše zabalí se svým logem navrchu a výsledek může prodávat (nebo nabídnout ke stažení).

Distribuce je tedy spojení systému GNU, jádra Linux a řady dalšího, převážně svobodného software. Často sám distributor upravuje obsah a doplňuje ho o vlastní nástroje usnadňující správu, konfiguraci a nebo o komerční aplikace třetích stran.

Kompatibilita distribucí

I když se linuxové distribuce mohou dost lišit, stále "pracujete s GNU/Linuxem". Obvykle v každé linuxové distribuci najdete jádro operačního systému (tedy Linux), základní knihovny, programy a běžné nástroje. Ať si tedy zvolíte libovolnou distribuci, pravděpodobně budete moci systém vzdáleně spravovat pomocí SSH, servírování webu vám může obstarávat Apache a komunikaci protokoly SMB/CIFS Samba (byť se v různých distribucích můžou nacházet např. různé verze).

Aby ale nebyly distribuce příliš odlišné (což by mohl být problém pro software, který má běžet na několika různých distribucích), existují některé standardy, které mezi-distribuční "kompatibilitu" usnadňují.

Linux Standard Base (LBS)

Linux Standard Base je založen na POSIXu, je podporován docela velkou skupinou společností a nějak řeší problém roztříštěnosti linuxových distribucí. Cílem LSB ale není vytvořit "jednu a tu nejlepší distribuci™", ale alespoň nějak zaručit kompatibilitu binárních souborů. Pokud tedy jeden program běží (byl zkompilován pro) určitou distribuci dodržující LSB dané verze, měl by fungovat i v ostatních distribucích, které tento standard také dodržují (samozřejmě v rámci jedné hardwarové architektury).

LSB bývá kritizována za to, že hájí zájmy pouze svých členů (větších společností) a nebere ohled třeba na komunitu kolem svobodné distribuce Debian (např. ignorováním balíčků DEB a upřednostněním mladšího formátu RPM).

Filesystem Hierarchy Standard (FHS)

Zatímco LSB řeší binární kompatibilitu, Filesystem Hierarchy Standard určuje hierarchii souborů na disku – tady jak má vypadat adresářový strom a kam patří některé soubory. To znamená, že např. systémové binárky by měly být v adresáři /sbin, domovské adresáře uživatelů v /home a vyměňovatelná média v /media. Tím vám vaše distribuce (kterou běžně používáte a znáte) usnadní orientaci v jiných systémech s jinou distribucí (která samozřejmě musí také dodržovat příslušnou verzi FHS).

Volba distribuce

U každé současné distribuce bychom jistě našli nějaké klady a zápory. Výsledek volby distribuce, kterou budete používat, je proto obvykle určitý kompromis. Ideální distribuce je nejspíše ta, se kterou se pracuje efektivně a přitom je této práce co nejméně. Také by ovšem měla splňovat vaše požadavky (ať už jsou jakékoli; bezpečnost a bezproblémový běh programů by ovšem měly být samozřejmostí).

Pokusit se o nějaký obecný závěr typu "tato distribuce je nejlepší" není jednoduché – spíše ani možné. Jenom v české linuxové konferenci na toto téma proběhlo několik slovních přestřelek, kterých je na celém internetu nespočet. I když je některá distribuce objektivně celkově výhodnější, neznamená to, že je výhodnější pro každého – někdo může klidně a raději používat "svoji distribuci", kterou má třeba na desktopu a dobře ji zná.

Dělení distribucí

Linuxových distribucí je opravdu velice mnoho, možná i každým dnem se nějaká objeví a nebo zanikne. Jejich částečný přehled můžete najít na serveru Distrowatch (včetně žebříčku).

Distribuce se dají dělit mnoha způsoby. Jedním z nich je dělení na komerční a nekomerční. Zatímco nekomerční (např. Debian) jsou úplné volně k dispozici (a obsahují pouze svobodný software), komerční (např. SUSE) se prodávají např. v krabicích s manuálem a třeba instalační podporou. Další možné rozdělení je podle obsaženého software na distribuce binární (např. Mandrakelinux) a zdrojové (např. Gentoo). A poslední rozdělení, které se hodí zmínit, je podle určení – existují distribuce desktopové (např. Fedora) a serverové (např. RedHat Enterprise Linux). Dělení ovšem není černobílé a samozřejmě je možné nainstalovat Fedoru na server, ale dalo by se namítnout, že něco jiného by bylo vhodnější. Navíc některé distribuce podle výše uvedeného rozdělení dělit nejdou (ať už spadají do obou kategorii nebo stojí mimo).

Vlastnosti

Jak už jsem zmínil, každá distribuce má svá pozitiva a negativa. Pojďme se podívat na jednotlivé vlastnosti, které distribuce mohou mít.

Architektura

První věcí, která by vás při volbě distribuce měla zajímat, je podpora vaší hardwarové architektury. Drtivá většina podporuje x86, ale už znatelně menší část také třeba amd64, sparc nebo alphu. V případě, že disponujete několika různými architekturami, je výhodné, pokud jsou vaší distribucí podporovány všechny (a distribuce na nich funguje). Místo několika různých prostředí tak získáte v podstatě jednotné chování na zcela rozdílných počítačích.

Software

Asi nejdůležitějším kritériem při výběru distribuce je software. Zde jsou totiž v rozporu dva možné požadavky – můžete si přát, aby byl distribucí (a vámi) používaný software co nejnovější a na druhou stranu požadujete bezpečnost a stabilitu (aby použitý software běžel a nepadal).

Vývojový cyklus

Tento problém mají distributoři ošetřen obvykle tak, že vydávají nové verze svých distribucí v určitých intervalech. Po vydání jedné verze se může začít pracovat na začlenění novějších programů do připravované verze budoucí. Interval vydávání distribucí může být buďto daný časem (tím je zaručeno, že nový software budete pravidelně získávat) a nebo stavem vlastní distribuce (delší a časem neomezený vývoj může znamenat opravu chyb a odzkoušení ve větší míře). Tak trochu vlastní kategorii má např. zdrojová distribuce Gentoo a podobní – jejich vývoj jde neustále kupředu a cokoli, co není právě aktuální, je zastaralé a nepodporované (podobně jako vývojové větve jiných distribucí – např. Debian testing/unstable, Fedora-devel, Mandrake Cooker).

Stabilita, bezpečnost

S tím souvisí stabilita a bezpečnost použitého software. Distributor by měl opravovat všechny známé chyby, které se jím použitých programů týkají, a to nejlépe v dostatečně krátkém čase. Pokud nemáte chuť upgradovat při každém vydání nové verze distribuce, bude pro vás důležité vědět, jak dlouho distributor garantuje vydávání bezpečnostních oprav.

Zde je dobré zmínit, že je důležitá i doba podpory určité verze distribuce – distributor může např. vydávat bezpečnostní updaty jenom proto, aby usnadnil přechod na vyšší verzi distribuce (jinak je doporučeno starou verzi nepoužívat a přejít na novou).

Stabilita tak trochu vyplývá z délky vývojového cyklu (a z počtu a schopnosti vývojářů). S novou verzí programů přichází nové chyby a cílem vývojářů je obvykle distribuce, která bude stabilní, funkční a nebude ohrožovat vaše data.

Ovšem pozor – potřeba stability může také znamenat neměnnost verzí zahrnutého software. Rozhodně není jednoduché stavět na něčem, co se často mění (pro pěkný příklad sáhnu k jinému operačnímu systému – Windows jsou vydávány po pár letech [a navíc zpětně kompatibilní], a tak na nich můžou třetí firmy stavět svůj vlastní software; to, že nové service packy přinášejí i některé nové vlastnosti a problémy s tím související, raději zanedbáme).

Údržba software

Aby bylo přidávání nových programů, případná pozdější aplikace oprav a nebo upgrade na novější verze co nejjednodušší, jsou programy obvykle distribuovány v balíčcích.

Výhodné je, pokud se balíčkovací systém stará o vzájemné závislosti balíčků. V případě, že některý program vyžaduje pro své správné fungovaní další programy nebo knihovny, se balíčkovací systém postará o dodržení požadavků (a případně zajistí následnou instalaci potřebných věcí). Kromě toho, že nějaký program může záviset na jiném, může být také s některým dalším v konfliktu. Bohužel i programy na správu balíčků jsou jenom software, a jak je známo, v software jsou chyby – proto se u neodzkoušených balíků mohou objevovat špatné závislosti. Pokud ovšem distributor zajistí, že jím dodávané balíčky fungují správně (včetně správné definicí závislostí a konfliktů), může tak správci výrazně ulehčit práci (např. instalace nebo aktualizace jedním jediným příkazem apod.).

Další důležitá věc je rozsah "zabalíčkovaného" software – tedy počet nebo výběr programů. Pro uživatele je výhodné, pokud jsou v jeho distribuci zahrnuty jeho oblíbené programy (resp. ty programy, které používá). Neplatí přímá úměra čím více balíčků v distribuci, tím lépe (protože správa velkého množství balíčků je pro distributora obtížnější), ale i tak to je jedno z důležitějších kritérií výběru distribuce.

Distributor také může výrazně ulehčovat práci přidáním implicitních konfiguračních souborů (ať už prostým přiložením, nebo generováním při instalaci způsobem "zeptám se na základní věci uživatele a podle toho se zkonfiguruji"). Když třeba nemáte moc velký zájem o podrobnou konfiguraci, jednoduše program nainstalujete. Pokud funkcionalita nebude odpovídat vašim představám, program si zkonfigurujete sami (což byste ale museli udělat stejně).

Cena, dokumentace, podpora

Cena, resp. finanční náročnost, je dalším důležitým kritériem – vždyť o peníze jde až v první řadě. Až na výjimky lze téměř libovolnou distribuci legálně získat pouze stažením (ať už hotových binárek nebo zdrojáků); složitější situace už ale nastává při případné redistribuci. Mimo náklady na pořízení je třeba počítat také s instalací, konfigurací a následnou správou systému (tyto další náklady mohou být snadno větší než náklady na získání).

Od věci není ani přiložená nebo dostupná dokumentace a placená podpora. Může se stát, že narazíte na problém, který je pro určitou distribuci specifický, a pak bude řešit problém přímo se svým distributorem.

Ovšem vzhledem k tomu, že všichni distributoři používají víceméně stejný software, může vám s nějakým složitějším problémem pomoci stejně jako distributor kdokoli jiný (ať už nějaká další placená služba nebo komunita).

Malé shrnutí

Celá pointa distribuce tedy spočívá v tom, že šetří čas. Kdyby šlo jen o to, co je a co není technicky možné, mohl by si každý spokojeně poskládat a zkompilovat svůj systém sám (a někteří to tak i preferují – existuje např. projekt Linux From Scratch). Tento postup ale trochu připomíná vynalézání kola, a proto je nejvhodnější si vybrat nějakou distribuci, jejíž hlavní rysy co nejvíce odpovídají našim požadavkům a se kterou bude co nejméně práce. Práce spočívá zejména v úpravách konfigurace oproti výchozímu nastavení, starosti o updaty a upgrady (jsou-li z nějakého důvodu potřeba, např. bezpečnost, požadavky uživatelů a podobně). V podstatě téměř libovolnou distribuci lze upravit do požadovaného stavu, ale je rozumné vybrat si jako výchozí bod tu, která se bude co nejvíce blížit k našemu cíli (a třeba i občas ustoupit a akceptovat výchozí řešení z distribuce; důvěrou v dobrý úsudek distributora můžete ušetřit cenný čas).

Rozhodně uvítáme vaše komentáře v diskuzi pod článkem, ovšem pouze k teoretickým aspektům výběru distribuce. S diskuzí o konkrétních distribucí prosím počkejte na následující díl, který bude přímo popisovat jednotlivé distribuce.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=614