Debian GNU/Linux

Milan Zamazal, květen 2000

Co je Debian GNU/Linux

Debian GNU/Linux je jednou z mnoha distribucí softwaru vystavěných nad jádrem Linux. Připravovaná verze Debianu 2.2 obsahuje přibližně 4000 balíků softwaru a podporuje architektury Intel 386 (a vyšší), Motorola 68000, Alpha, Sparc, ARM a PowerPC, připravuje se verze pro Sparc64, neoficiální odnoží je přenos na architektury IBM S/390 a I64. Protože celá distribuce je dodávána s kompletními zdrojovými kódy, obecně nic nebrání tomu, aby mohla být přenesena na jakoukoliv další architekturu podporovanou jádrem Linux a základními softwarovými komponentami (jako je např. knihovna libc).

Upřesněme si, co je to distribuce softwaru. Pro práci s počítačem je zapotřebí kromě hardwarového vybavení i software. Ten se skládá z několika komponent -- od softwaru vestavěného v hardwaru (např. BIOS) přes jádro operačního systému (např. Linux), základní systémové komponenty obalující jádro (např. libc, init, login, mount) až po aplikace (např. Mozilla, Emacs, PostgreSQL). Distribuce softwaru vystavěné nad Linuxem umožňují uživateli snadno nainstalovat kompletní softwarové vybavení od jádra až po aplikace.

Teoreticky by pro tento úkol stačil nějaký obsáhlejší mirror softwaru, odkud si uživatel může stáhnout a nainstalovat vše potřebné. To ovšem naráží na řadu problémů. Uživatel musí mít pro takový postup poměrně dobré technické znalosti, musí si vše kompilovat ze zdrojových textů, musí sledovat nové verze používaného softwaru (zejména nekompatibility se staršími verzemi), musí dávat pozor na vzájemnou spolupráci všech instalovaných balíků (jako např. zda spolu spolupracují určité verze softwaru nebo zda se související věci neocitnou na disku ve zcela jiných adresářích) a v neposlední řadě opravovat různé chyby. Ian Jackson, jeden ze zakladatelů Debianu, uvádí jako hlavní motivaci své práce na distribuci, že již nebyl schopen stále dokola sám kompilovat a instalovat nové verze veškerého softwaru na svém počítači. Distribuce se snaží výše uvedené problémy od uživatele odstínit a připravit mu již zkompilovaný a vzájemně sladěný software, který stačí pomocí instalačního programu, taktéž připraveného tvůrci distribuce, přenést z nějakého média (CD, Internet, ...) na cílový disk.

V počátcích vývoje jádra Linux byla obecně používanou distribucí SLS. Ta ovšem postupem času přestala být dostatečně udržována, uživatelé s ní začali být nespokojeni, a tak začaly vznikat distribuce další. Jednou z těchto nových distribucí byl Debian GNU/Linux. Mezi jedny z jeho prvních tvůrců patří známé osobnosti jako Ian Murdock, Bruce Perens, Ian Jackson nebo Daniel Quinlan.

Debian GNU/Linux začal vznikat v roce 1993. Začínal jako produkt malé skupinky nadšenců a s primitivním systémem správy balíků. Postupem času se však začala rozdělovat správa jednotlivých balíků konkrétním vývojářům, k projektu se připojovali další zájemci a vznikl také sofistikovaný systém správy balíků dpkg. Projekt zaujal nadaci Free Software Foundation (proslulou svým projektem GNU, jehož komponenty tvoří významnou část distribuce, což Debian GNU/Linux zohlednil ve svém názvu), která jej po dobu jednoho roku sponzorovala. V roce 1995 byl již Debian propracovanou distribucí se skutečnými závislostmi mezi balíky a možností inkrementálních upgradů systému, což byly tehdy vlastnosti v linuxovém světě unikátní. Prapůvodně byl Debian vyvíjen jako zdrojová distribuce pro Linux, později začala být vytvářena i binární verze pro Intel 386, v roce 1995 se začalo s přenosem na neintelovské platformy a v roce 1998 začala práce na Debianu pro GNU/HURD, čímž Debian přestal být závislý na jednom konkrétním jádře.

Na začátku jsme uvedli, že Debian GNU/Linux je pouze jednou z mnoha distribucí vystavěných nad jádrem Linux. Přesto je některými svými rysy mezi všemi významnými distribucemi unikátní. Je nekomerční distribucí, nestojí za ním žádná firma, takže může realizovat technická rozhodnutí bez ohledu na potřeby marketingu. Je otevřený pro všechny vývojáře, připojit se k projektu může každý, ať už správou balíků (každý balík má svého údržbáře, který se o balík stará a je za něj zodpovědný), účastí v technických diskusích na mailing listech, tvorbou dokumentace, testováním nebo jakkoliv jinak. Aktuálně se na tvorbě Debianu podílí přibližně 500 lidí. Vedlejším efektem této otevřenosti je, že Debian je se svými 4000 (free!) balíků v distribuci zřejmě nejobsáhlejší distribucí založenou na Linuxu. Nejzajímavější jsou pak cíle Debianu.

Cílem Debian GNU/Linuxu je tvořit distribuci založenou výhradně na free softwaru. Přestože Debian poskytuje podporu pro tvorbu balíků non-free softwaru, do distribuce samotné mohou být zahrnuty pouze softwarové balíky s free licencí. Konkrétně tyto cíle tvůrci Debianu formulovali ve své společenské smlouvě (Social Contract), kde se zavázali, že Debian navždy zachovají jako stoprocentně free softwarovou a otevřenou distribuci a budou spolupracovat s uživateli i tvůrci free softwaru. Co tvůrci Debianu považují za free software je formulováno v dokumentu Debian Free Software Guidelines (DFSG), který byl de facto akceptován free softwarovou komunitou jako obecné vodítko pro hodnocení co je a není free software a byl též pod názvem Open Source Definition (OSD) převzat iniciativou Open Source.

Role free softwaru je důležitá proto, že free software zrovnoprávňuje vztah mezi tvůrci softwaru a jeho uživateli a podporuje širokou spolupráci místo duplikace úsilí a nečistých "konkurenčních" praktik. Otevřené prostředí umožňuje uživatelům dostat za své investice plnohodnotný produkt, jímž nejsou vázáni na libovůli konkrétního tvůrce ani chytáni do pastí proprietárních protokolů a uměle vytvářené nepřenositelnosti programů a dat. Vytváří se tak skutečné konkurenční prostředí, kde mnohem více rozhoduje kvalita a schopnost konstruktivní spolupráce mezi tvůrci i uživateli než stavění bariér a omezování svéprávnosti uživatelů. Na těchto principech vznikly projekty jako Linux, GNU a samozřejmě i Debian. Je proto takřka zákonité, že je Debian, coby plně otevřená distribuce vytvářená svými uživateli, převzal jako svůj oficiální cíl.

Kromě toho se Debian samozřejmě snaží i o co nejvyšší kvalitu distribuce, co nejmenší počet chyb a také vysokou bezpečnost systému. Díky své nekomerčnosti nemusí upřednostňovat touhu uživatelů po co nejrychlejších řešeních před kvalitou technických řešení. To se spolu s otevřeností projektu významně odráží v kvalitě výsledku, kterou uživatelé i tvůrci následně oceňují -- Debian je jedna z nejpoužívanějších linuxových distribucí a jsou na ní vystavěny i některé další linuxové distribuce.

Správce balíků a související nástroje

Jedním z nejdůležitějších nástrojů každé distribuce je správce balíků. Ten zajišťuje instalaci a odinstalaci balíků, poskytuje mechanismy pro provedení jejich konfigurace, poskytuje informace o instalovaných balících a stará se o zajištění konzistence vzájemných vztahů balíků.

Debian GNU/Linux ve správě balíků vždy odváděl důležitou průkopnickou práci. Byl dlouhou dobu jedinou distribucí umožňující definovat a řešit závislosti mezi balíky, jeho nástroj dselect je možná dosud stále jediný umožňující interaktivně řešit konflikty při výběru balíků ihned při jejich vzniku a Debian také zavedl možnost jedno až dvoupříkazových upgradů celého systému.

Softwarové balíky obsažené v Debianu se dělí na zdrojové a binární. Zdrojové balíky jsou obecně na platformě nezávislé balíky, které nejsou určeny pro instalaci, nýbrž pro vytvoření balíků binárních, mnohdy již závislých na konkrétním jádře a procesoru, které je možno nainstalovat a přímo používat. Uživatel se obvykle tvorbou balíků nezabývá, a proto se setkává převážně s balíky binárními.

Každý zdrojový balík je tvořen trojicí souborů s příponami .orig.tar.gz, .diff.gz a .dsc nebo dvojicí souborů s příponami .tar.gz a .dsc. .tar.gz soubory obsahují zdrojové texty a data, .diff.gz jsou úpravy provedené pro Debian a .dsc obsahuje různé administrativní informace o balíku. Některé balíky jsou bez úprav, typicky jsou to ty, které jsou specifické pro Debian nebo jejichž primárním distribučním místem je přímo Debian. Chcete-li ze zdrojového balíku vytvořit jeho balíky binární, můžete tak učinit pomocí příkazů dpkg-source a dpkg-buildpackage z balíku dpkg-dev, případně i s využitím balíku apt, o kterém si ještě povíme později více.

Binární balíky mají příponu .deb a pracuje se s nimi většinou prostřednictvím správce balíků dpkg. Pro technicky znalejší lze uvést, že .deb balík je archív ar obsahující .tar.gz soubory, takže je možné jej bez problémů ručně rozbalit na kterémkoliv unixovém systému.

Nejdůležitějším nástrojem pro práci s balíky je program dpkg. Zajišťuje instalaci a odinstalaci balíků, poskytuje prostředky pro jejich základní konfiguraci, kompilaci a tvorbu. Kontroluje závislosti mezi balíky a udržuje databázi s informacemi o nich, o stavu jejich instalace a některých požadavcích na ně stanovených administrátorem systému.

Nepopisujeme zde konkrétní použití dpkg, protože to lze najít v příslušné dokumentaci nebo si je lze nechat vypsat v přehledné formě pomocí příkazu dpkg --help. Kromě --help jsou z hlediska uživatele nejdůležitějšími volbami příkazu -I, -i, -r, -s, -l, -S a -x. Z nástrojů obsažených v balíku dpkg upozorněme na užitečnou pomůcku dpkg-divert, umožňující nahradit nějaký nekonfigurační soubor z instalovaného balíku souborem vlastním, a dokumentaci k příkazu update-alternatives, týkající se nastavení implicitních odkazů pro případ, že je na systému instalováno více balíku s podobnou funkcionalitou.

Důležitým aspektem každé distribuce je též správa konfiguračních informací. dpkg při upgradech balíků kontroluje, zda soubory označené jako konfigurační nebyly od poslední instalace nebo upgradu modifikovány. Pokud byly, neprovede automaticky jejich nahrazení novější verzí, nýbrž se zeptá, co přesně má učinit. Není tedy třeba se bát, že změna konfigurace bude při upgradu přepsána. Analogické pravidlo platí pro data, která nejsou přímou součástí balíku a jsou vytvářena až při nebo po jeho instalaci, typicky se jedná o různé databáze. Tato pravidla se týkají zejména adresáře /etc obsahujícího konfigurační soubory a adresáře /var obsahujícího data neobsažená v instalačních balících.

Jedním z problémů Debianu je základní konfigurace balíků při instalaci. Ta obvykle probíhá během dokončování instalace balíku. Potíž spočívá v tom, že uživatel musí být instalaci přítomen, aby mohl postupně na konfigurační otázky odpovídat. Někteří pak považují za obtěžující, že se instalace vůbec na něco ptá, což je nepříjemné zejména při hromadných instalacích. Z těchto důvodů byl vymyšlen nástroj debconf, umožňující položit konfigurační dotazy na začátku instalace, pamatovat si zodpovězené dotazy pro budoucí upgrady (program se pak při upgradu neptá na již kdykoli dříve zodpovězené otázky) a omezit zobrazování dotazů a hlášení pouze na ty nejdůležitější.

Interaktivním rozhraním k dpkg je program dselect. V dialogovém rozhraní lze prohlížet seznam balíků a označovat balíky pro instalaci a odstranění. Výhodou programu je, že případné konflikty v závislostech řeší okamžitě, můžete tedy ihned zareagovat na případné nepříznivé závislostní důsledky instalace nebo odstranění jednoho balíku a nemusíte vše řešit až po ukončení výběru všech balíků, kdy nemáte jasný přehled, co s čím v řetězci závislostí přesně souvisí. Touto vlastností, poněkud nepříjemnou pro začínající uživatele, avšak velmi užitečnou pro uživatele pokročilejší, je dselect dosud jedinečným nástrojem.

Je pravdou, že dselect má i některé mouchy. Zejména není připraven na dnešní enormní množství balíků v distribuci -- v seznamu 4000 balíků, byť setříděném dle různých kritérií, je dost obtížné se orientovat, zejména při pouze omezených možnostech prohledávání. Na odstranění těchto nedostatků se pracuje, řada problémů však vzniká i na straně uživatelů, kteří dselect používají, aniž by si řádně přečetli stručnou nápovědu vypisovanou při jeho spuštění. Pamatujte na to, pokud budete chtít dselect používat.

dselect můžete používat nejenom pro nastavování balíků pro instalaci nebo odstranění, ale též k procházení jejich seznamu. Obvykle je však pohodlnější použít řádkové příkazy z balíků dlocate a grep-dctrl. Program dlocate nabízí rychlejší verze funkcí poskytovaných dpkg pro zobrazení různých informací o instalovaných balících. Programy z balíku grep-dctrl pak umožňují prohledávat databáze instalovaných nebo všech dostupných balíků dle různých kritérií.

Dalším nástrojem z vybavení správy balíků Debianu je apt. Apt umožňuje provádět upgrady systému a instalace a odstraňování balíků tím nejjednodušším způsobem -- jednořádkovým příkazem. Jedná se v podstatě o jakési rozhraní k dpkg, které zajišťuje automatické řešení závislostních problémů a další rutinní činnosti. Chcete-li kupříkladu provést kompletní upgrade systému na vašem počítači, stačí v konfiguraci aptu přesměrovat cesty na nejbližší mirror nové distribuce nebo vložit do mechaniky nové instalační CD a provést příkazy:


# apt-get update
# apt-get dist-upgrade
Apt si stáhne ze zdroje (kterým je typicky mirror vystavený přes HTTP nebo instalační CD) nové informace o balících a porovná je s instalovanými balíky. Poté vytvoří seznam balíků k upgradu -- to jsou balíky s novější verzí, balíky nutné pro splnění závislostí a nové balíky nahrazující balíky ze staré distribuce (např. pokud byl nějaký starý balík rozdělen na více nových). Vytvoří také seznam balíků určených pro odstranění, které by narušovaly nové závislosti nebo které byly nahrazeny jinými balíky. V případě síťové instalace ještě zkontroluje, zda je na disku dostatek volného místa pro stažení balíků a poté již jen uživateli oznámí, co se chystá učinit a zda s tím uživatel souhlasí. Po schválení balíky ve správném pořadí nainstaluje.

Podobně funguje instalace jednotlivých balíků -- napíšete


apt-get install JMÉNO_BALÍKU
a apt provede analogické činnosti jako při upgradu a balík nainstaluje. Další možností je nechat si stáhnout a případně i zkompilovat zdrojový balík. Příjemnou možností pak je možnost zcela neinteraktivního stahování aktualizovaných balíků pomocí

apt-get update; apt-get -q -d -y dist-upgrade >>/var/log/apt
Tímto způsobem si můžete na nepříliš propustných pevných linkách nechat přes noc stáhnout potřebné balíky a ráno si je v klidu pomocí apt-get dist-upgrade za přítomnosti pána počítače nainstalovat. Pomůckou apt-move ze stejnojmenného balíku je pak můžete přesunout na svůj lokální mirror.

Jako všechny programy slušné vůči uživateli, má apt volbu --help, která vypíše stručnou nápovědu.

Jako interaktivní rozhraní k aptu lze použít dselect, kterému apt slouží jako jedna z metod přístupu k archívu. Existují pokusy vytvořit k aptu další interaktivní rozhraní, viz např. balíky gnome-apt nebo console-apt. Tyto projekty však zatím nejsou příliš daleko a ani neposkytují některé důležité funkce poskytované dselectem.

Pokročilejším uživatelům a zájemcům o hlubší proniknutí do problematiky technických záležitostí Debianu lze doporučit studium dokumentace v balíku debian-policy, kde jsou popsána pravidla, která musí balíky dodržovat (což jsou informace zajímavé i pro uživatele), a v balíku packaging-manual, který je technickým návodem pro tvorbu balíků.

Spolupráce s jinými distribucemi

Jedním z principů free softwaru je kooperace. Vývojový tým Debianu si toho je dobře vědom. Debian je vyvíjen zcela otevřeně -- veškeré balíky a jejich nové verze jsou k dispozici hned po jejich vytvoření a všechny technické záležitosti tvorby distribuce jsou diskutovány na veřejných mailing listech, kde se k nim mohou vyjadřovat všichni čtenáři. Použití Debianu není nijak omezeno nad rámec licencí softwaru v něm zahrnutého a ten je všechen free. Debian samozřejmě není jedinou distribucí, která dává k dispozici výsledky práce svých vývojářů, a proto může taktéž sám využívat dobré nápady z jiných distribucí.

Žádná distribuce není úplně univerzální. Debian se proto také nesnaží vyhovět úplně všem a raději se snaží být použitelný mimo jiné i jako základ pro specializované distribuce. V současné době je na něm vystavěno několik komerčních distribucí (např. Corel Linux nebo Storm Linux), vesměs zaměřených na určité skupiny uživatelů. Všechny tyto distribuce využívají nástroje a balíky produkované Debianem, které různě obohatí a upraví a vytvoří tak novou, specializovanou distribuci.

Pro spolupráci s balíky nedebianovských distribucí Debian vytvořil nástroj alien, který umožňuje vzájemně konvertovat balíky formátů deb, RPM, slp a tar.gz. Lze jej využít pro instalaci balíků jedné distribuce na systému s instalovanou distribucí jinou. Podotkněme, že tento postup bohužel ne vždy bývá úspěšný, protože distribuce se liší v tom, jak realizují vzájemnou spolupráci balíků. Tento problém se snaží odstranit projekt LSB (Linux Standard Base), jehož cílem je sjednotit základní vlastnosti distribucí a zajistit tak přenositelnost většiny balíků.

Jedním z významných nepřímých spolupracovníků Debianu je populární distribuce Red Hat. Společnost Red Hat Software je jedním z tvůrců free softwaru a Debian například z jeho distribuce převzal balík logrotate pro správu logových souborů. Red Hat se zase mohl u Debianu inspirovat systémem závislostí balíků nebo systémem jednotného menu pro správce oken. Jedním z nástrojů vyvíjených Debianem vhodných pro zahrnutí do ostatních distribucí je výše popsaný apt.

Závěr

Vývoj Debian GNU/Linuxu stále pokračuje. Díky jeho otevřenosti jsou možnosti projektu velmi široké, projekt nemůže zajít na úbytě odchodem několika lidí a široké spektrum vývojářů přináší další prvky otevřenosti. Jedním z důsledků této otevřenosti je, že Debian se neomezuje pouze na jádro Linux. Debian se chopil mikrojádrového operačního systému GNU/HURD a vytvořil projekt Debian GNU/HURD vytvářející distribuci založenou na HURDu. Dalším vážným kandidátem na členství ve skupině jader podporovaných Debianem je FreeBSD. Cílem je poskytnout moderní distribuci založenou na tomto jádře s možností sdílení binárních spustitelných souborů s instalovaným Linuxem.

Každý, kdo má chuť budovat si spolu s ostatními "svoji" distribuci, má nové nápady a v neposlední řadě chce podpořit myšlenky free softwaru, se může k projektu připojit.

Úplně na konec podotkněme, že jedním z obecných problémů linuxového světa je zatím stále nedokonalá podpora češtiny. Proto byl před více než dvěma roky založen projekt Debian CZ/SK. Cílem tohoto projektu není vytvářet distribuci založenou na Debianu specifickou pro české prostředí, nýbrž obohatit o podporu češtiny Debian samotný a software v něm obsažený. To jednak řešením problémů společných všem distribucím Linuxu (např. čeština v X Window) a jednak prací na věcech specifických pro Debian (např. překlad popisů balíků). K tomuto projektu se může připojit ještě více zájemců o Debian, účastníků je málo i přesto, že řada podcílů projektu pro své vyřešení vyžaduje pouze minimální technické znalosti.

Zajímavé odkazy

http://www.debian.org

Oficiální WWW stránky Debianu.
http://www.debian.org/social_contract

Společenská smlouva Debianu a DFSG.
http://www.debian.cz

Stránky projektu Debian CZ/SK.
http://www.debian.org/MailingLists/subscribe

Mailing listy Debianu.
http://www.debian.cz/mailman/listinfo/czdebian-l

Český a slovenský mailing list věnovaný Debianu.
http://www.linux.cz

České stránky o Linuxu.
http://www.gnu.org

Oficiální stránky projektu GNU; filozofie free softwaru.
http://www.gnu.cz

České stránky o projektu GNU.
http://www.linuxbase.org

Projekt Linux Standard Base.
http://www.redhat.com

Distribuce Red Hat.

About this document ...

This document was generated using the LaTeX2HTML translator Version 99.1 release (March 30, 1999)