Geany má ve Snapu 101 MB a jako DEB jen 4,47 MB. Proč takový rozdíl?
Jak jsem už dříve uváděl v příspěvcích tady na VojtechKral.cz, mým primárním operačním systémem je Xubuntu. Na svém počítači v pracovně, což je repasovaný Dell OptiPlex 7070, jsem potřeboval nějaký textový editor, který je dobrý, funkční, rychlý a především umí pracovat i s dlouhými a obsáhlými XML soubory.
Mimochodem, právě repasované počítače mám docela rád. Člověk může za rozumné peníze získat bývalý firemní počítač, který na běžnou práci ještě dlouho stačí. Pokud se po něčem podobném díváte, můžete se podívat například na repasované stolní počítače na Počítače24.cz.
Ze zkušeností z dřívějška, kdy jsem už před mnoha lety koketoval právě s Ubuntu, jsem si zvykl na editor Geany.
Tento editor je poměrně lehký, nenáročný a přitom velice výkonný. Dokáže bez problémů otevírat i velké XML soubory, datové soubory nebo zdrojové kódy. Především jde stále o textový editor, takže mi do souborů nepřidává vlastní formátování a nesnaží se jejich obsah nějak „vylepšovat“ jako kancelářské programy typu LibreOffice Writer nebo Microsoft Word.
O programech pro Xubuntu jsem už na blogu psal například v příspěvku CPU-X je můj oblíbený nástroj pro identifikaci hardwaru v Xubuntu.
Geany jsem našel jako Snap i DEB
Když jsem chtěl Geany tentokrát nainstalovat, říkal jsem si, jestli je vůbec dostupný přímo v repozitářích Ubuntu, nebo jestli ho budu muset instalovat nějakým jiným způsobem.
Jelikož mám v Xubuntu nainstalované také Centrum aplikací, podíval jsem se nejprve tam. Dal jsem vyhledat Geany a skutečně mi ho našlo. A dokonce hned dvakrát.
Jednou mezi balíčky Snap a podruhé mezi balíčky Debian.
Snap je způsob distribuce aplikací používaný především v Ubuntu. Aplikace může mít část potřebných knihoven a běhového prostředí oddělenou od samotného operačního systému a běžně funguje v určitém stupni izolace. Výhodou je větší nezávislost aplikace na konkrétní verzi systému. Nevýhodou může být například větší velikost balíčku.
Už samotné Centrum aplikací mi tak ukázalo docela zajímavou věc. Nemusím ho používat pouze k instalaci programů. Zároveň na jednom místě vidím, z jakého zdroje je možné danou aplikaci nainstalovat.
V případě Geany mám na výběr Snap nebo klasický DEB balíček z repozitářů Ubuntu.
DEB verzi bych přitom mohl nainstalovat také klasicky z terminálu:
sudo apt install geanyO používání apt a aktualizacích Ubuntu jsem už psal také v příspěvku Proč Ubuntu neuvolňuje aktualizace všem najednou?.
Snap Geany měl přes 101 MB
Nejprve jsem se podíval na variantu Snap.
A tady přišlo první překvapení.
Centrum aplikací mi ukázalo verzi 1.33.01+git, naposledy aktualizovanou 4. 10. 2020.
To už je pěkných pár let.
Ještě zajímavější ale byla stahovaná velikost:
101,05 MB.

Na program, který je sám prezentovaný jako lehké a rychlé vývojové prostředí a textový editor, mi to přišlo opravdu hodně.
Navíc je zajímavé, že Snap Store stále uvádí právě tuto variantu programu. Podívat se můžete přímo na Geany ve Snap Store.
DEB měl ke stažení pouze 4,47 MB
Potom jsem se podíval na druhou variantu.
Centrum aplikací mi u DEB balíčku ukázalo verzi 2.1-2 a stahovanou velikost pouhých:
4,47 MB.
Tak to už je pořádný rozdíl.

Na jedné straně mám Snap se stahovanou velikostí 101,05 MB a na druhé straně DEB, kde mi Centrum aplikací ukazuje jen 4,47 MB.
Snap má v tomto konkrétním případě přibližně 22,6× větší stahovanou velikost než DEB.
A co je ještě zajímavější, DEB varianta je zároveň výrazně novější. Geany 2.1-2 je dostupné v repozitářích Ubuntu. Podívat se můžete také přímo na Geany v repozitářích Ubuntu.
Jak je vůbec možné, že mezi dvěma variantami stejného programu vznikne tak obrovský rozdíl?
Proč je Snap tak velký a DEB tak malý?
Důvod je vlastně docela jednoduchý.
Hodně zjednodušeně si můžeme instalaci klasického DEB balíčku představit třeba takto:
DEB Geany:
Geany několik MB
GTK už je v systému
GLib už je v systému
další knihovny už jsou v systémuProgram tedy může využívat knihovny, které už jsou součástí systému a které mohou současně používat také další nainstalované aplikace.
Snap funguje trochu jinak.
Zjednodušeně:
Snap Geany:
Geany
+ přibalené knihovny
+ části potřebného runtime
+ metadata
+ prostředky pro izolaci aplikace
= výrazně větší balíčekNení to samozřejmě technicky úplný popis fungování Snapu. Některé části běhového prostředí mohou Snap aplikace mezi sebou sdílet. Princip je ale takový, že Snap je více soběstačný a nemusí se tolik spoléhat na konkrétní knihovny nainstalované v samotném operačním systému.
Právě kvůli tomu bývají Snap balíčky větší než klasické DEB balíčky. Rozdíly mezi oběma způsoby instalace popisuje také oficiální dokumentace Ubuntu o Snap a DEB balíčcích.
Znamená to, že je Snap špatně?
Podle mě určitě ne.
Myšlenka Snapu se mi vlastně líbí. Aplikace je více izolovaná od samotného systému a autor může distribuovat program nezávisle na konkrétní verzi Ubuntu. V některých situacích tak může být Snap velmi pohodlným způsobem, jak získat program, který v klasických repozitářích není nebo je v nich dostupný ve starší verzi.
Také větší velikost dnes nemusí být zásadním problémem.
V době terabajtových disků se nějakých 50 nebo 100 MB většinou bez problémů ztratí.
Na počítači s 1TB nebo 2TB diskem mě těch přibližně 100 MB opravdu trápit nebude.
Na druhou stranu, pokud bych Snap tímto způsobem používal pro desítky aplikací například na starším počítači s menším SSD, už může být rozdíl zajímavější.
U Geany bych přesto zvolil DEB
Snap i DEB jsou v Ubuntu běžně podporované způsoby instalace programů. Nedá se tedy jednoduše říct, že jeden je správně a druhý špatně.
Já osobně bych ale v případě Geany zvolil DEB.
V mém konkrétním případě dostávám výrazně novější verzi programu, stahuji podstatně méně dat a aplikace využívá klasické systémové knihovny a správu balíčků Ubuntu.
Nemůžu tvrdit, že bude Geany jako DEB automaticky rychlejší než jako Snap. Obě varianty jsem tímto způsobem neměřil. Pokud ale díky těsnějšímu propojení se systémem bude DEB byť jen o něco svižnější a současně zabere méně místa, dávám mu v tomto případě palec nahoru.
Snap má naopak výhodu ve větším oddělení aplikace a jejích součástí od operačního systému. To může zjednodušit správu aplikace a omezit například konflikty mezi jednotlivými verzemi knihoven.
Takže je to vlastně otázka priorit.
Centrum aplikací budu používat dál
Celé to má ale ještě jednu zajímavou pointu.
Zjistil jsem totiž, že Centrum aplikací nemusím používat jen jako místo, kde kliknu na tlačítko Nainstalovat.
Stačí zadat název programu a okamžitě vidím, jestli je k dispozici jako Snap, DEB nebo v obou variantách.
Potom si můžu porovnat verzi programu, stahovanou velikost a případně také informaci o poslední aktualizaci.
Právě díky tomu jsem si u Geany během několika sekund všiml, že Snap má více než 101 MB a pochází z roku 2020, zatímco DEB mi nabízí novější verzi 2.1-2 a ke stažení pouze 4,47 MB.
A to se může hodit i u dalších programů.
Snap nebo DEB: co tedy zvolit?
Za mě záleží na konkrétní aplikaci.
Pokud je v oficiálním repozitáři Ubuntu dostupný aktuální DEB balíček, osobně bych většinou začal právě u něj. Je menší, využívá klasické systémové závislosti a dobře zapadá do celého systému Ubuntu.
Pokud ale aplikace v repozitáři není, je tam výrazně zastaralá nebo chci větší izolaci programu od systému, Snap může být naopak velmi dobrým řešením.
U Geany jsem si tedy vybral DEB.
U jiné aplikace bych se klidně mohl rozhodnout opačně.
FAQ
Proč je Snap větší než DEB?
DEB balíčky mohou využívat řadu knihoven, které už jsou nainstalované v operačním systému. Snap má část potřebného prostředí a knihoven oddělenou od systému nebo přibalenou přímo k aplikaci. Proto bývají Snap balíčky větší.
Je lepší Snap, nebo DEB?
Univerzální odpověď není. DEB obvykle zabírá méně místa a používá klasické systémové závislosti. Snap nabízí větší izolaci aplikace a umožňuje distribuovat program nezávisleji na konkrétní verzi Ubuntu.
Jak nainstaluji Geany v Ubuntu nebo Xubuntu?
Geany z repozitáře Ubuntu je možné nainstalovat z terminálu příkazem:
sudo apt install geanyStejnou DEB variantu je možné vyhledat také přímo v Centru aplikací.
Je Geany dostupné také jako Snap?
Ano. Snap Store nabízí balíček geany-gtk. V době psaní tohoto příspěvku mi Centrum aplikací ukazuje verzi 1.33.01+git, která byla aktualizovaná 4. října 2020. V mém případě proto dává větší smysl novější DEB verze z repozitáře Ubuntu.