====== Balíček .deb (Debian Package) ====== **Balíček .deb** je standardní formát archivního souboru používaný pro distribuci a instalaci softwaru v operačním systému **Debian GNU/Linux** a jeho derivátech (např. Ubuntu, Linux Mint, Kali Linux). Formát byl navržen tak, aby umožňoval efektivní správu závislostí a automatizaci instalace. ===== 1. Historie a původ ===== Formát vznikl v počátcích projektu Debian (přibližně v roce 1993) jako reakce na potřebu spravovat rostoucí množství softwaru v distribuci. Jeho autorem je **Ian Murdock** (zakladatel Debianu). Na rozdíl od formátu RPM (používaného v rodině Red Hat) sází ''.deb'' na maximální využití standardních unixových nástrojů a modularitu. ---- ===== 2. Anatomie binárního balíčku ===== Soubor s příponou ''.deb'' je ve skutečnosti **ar archiv** (tradiční unixový formát), který v sobě nese tři základní komponenty: * **debian-binary**: Krátký textový soubor obsahující verzi formátu balíčku (aktuálně standardně 2.0). * **control.tar.gz**: Archiv obsahující metadata. Zde jsou uloženy instrukce pro správce balíčků (název, verze, popis, závislosti) a konfigurační skripty (preinst, postinst), které se spouštějí během instalace. * **data.tar.gz** (nebo ''.xz'', ''.zst''): Vlastní spustitelné programy, knihovny a dokumentace, které se rozbalí do kořenového adresáře systému. ---- ===== 3. Správa závislostí a ekosystém ===== Jednou z nejsilnějších stránek formátu je jeho schopnost definovat vztahy mezi balíčky. Tyto vztahy tvoří v teorii grafů **orientovaný graf**. ==== Základní typy vztahů ==== ^ Vztah ^ Význam ^ | **Depends** | Balíčky nezbytné pro běh programu. Bez nich instalace neproběhne. | | **Recommends** | Balíčky, které nejsou kritické, ale výrazně rozšiřují funkčnost. | | **Conflicts** | Seznam balíčků, které nesmí být v systému přítomny současně. | | **Provides** | Definice virtuálního balíčku (např. více programů může poskytovat "mail-transport-agent"). | ==== Hierarchie nástrojů ==== Práce s balíčky probíhá ve dvou rovinách: * **Low-level (dpkg):** Nástroj pro přímou manipulaci se soubory ''.deb''. Umí balíček rozbalit a nainstalovat, ale neumí sám stáhnout chybějící závislosti z internetu. * **High-level (APT):** Advanced Package Tool řeší stahování z repozitářů a automaticky dopočítává celý strom závislostí. ---- ===== 4. Zdrojové balíčky (.dsc) ===== Zatímco ''.deb'' je určen pro koncového uživatele, vývojáři spravují software pomocí formátu **.dsc** (Debian Source Control). Tento přístup striktně odděluje práci původního autora od úprav distribuce. ==== Součásti zdrojové sady ==== 1. soubor.dsc: Digitálně podepsaný popisný soubor s kontrolními součty. 2. soubor.orig.tar.gz: Původní "čistý" zdrojový kód od autora (upstream). 3. soubor.debian.tar.xz: Archiv obsahující adresář ''debian/'' s instrukcemi pro kompilaci a specifickými záplatami (patche). ---- ===== 5. Srovnání s formátem RPM ===== **RPM** (Red Hat Package Manager) je hlavním konkurentem, používaným v distribucích Fedora, RHEL a **SUSE** (kde s ním pracuje knihovna **libzypp**). ^ Vlastnost ^ Balíček .deb ^ Balíček RPM ^ | **Archivátor** | ar (tradiční unixový) | cpio (často komprimovaný) | | **Konfigurace** | Adresář ''debian/'' | Soubor ''.spec'' | | **Metadata** | Více textových souborů | Binární hlavička (Header) | | **Zdrojová verze** | Modulární (.dsc) | Monolitická (.src.rpm) | ===== Závěr ===== Systém balíčků ''.deb'' představuje jeden z nejdéle sloužících a nejstabilnějších standardů v Linuxu. Jeho modulární přístup k vývoji (skrze ''.dsc'') a robustní správa závislostí (skrze APT) z něj činí ideální volbu pro rozsáhlé softwarové repozitáře.