Co potřebujete vědět o Snaps na Ubuntu 20.04

Ubuntu 20.04, s kódovým označením Focal Fossa, se setkalo s velkým uznáním jako skvělá verze. Nicméně, rozhodnutí nahradit standardní Software Center instalací aplikací prostřednictvím snap balíčků vyvolalo smíšené reakce. V následujícím textu si objasníme, co tato změna pro uživatele reálně znamená.

Co jsou to Snap balíčky v Linuxu?

Termín „Snap“ se vztahuje jak na samotný příkaz snap, tak na instalační balíček, který nese stejné jméno. Snap balíček představuje komprimovaný soubor, který obsahuje aplikaci a všechny její nezbytné závislosti. Tyto závislosti mohou zahrnovat knihovny, webové servery, databázové systémy nebo jakékoli další komponenty potřebné pro správné fungování aplikace.

Hlavní výhodou Snapů je zjednodušení procesu instalace, neboť odstraňují komplikace spojené s takzvaným „peklem závislostí“. Tento problém nastává, když nově instalovaná aplikace nemůže fungovat kvůli chybějícím, nekompatibilním nebo zastaralým závislostem, které mohou navíc poškodit stávající aplikace.

Po instalaci se Snap balíček dekomprimuje a jeho soubory se extrahují. Důležité je, že se balíček za běhu připojuje jako takzvané blokové smyčkové zařízení. Díky tomu je vnitřní systém souborů SquashFS přístupný.

Aplikace spuštěné z Snap balíčků jsou zapouzdřené a chráněné, což znamená, že nemohou negativně ovlivnit soubory vašeho systému. Dokonce je možné mít více verzí stejné aplikace, aniž by docházelo ke konfliktům či kolizím.

Na druhou stranu, Snap balíčky mají i své nevýhody. Instalační soubory jsou obvykle větší než tradiční Debian Package Manager (DEB) soubory. Navíc zabírají více místa na disku, protože každá aplikace instaluje vlastní kopii potřebných závislostí. Ačkoli pevné disky jsou stále větší a levnější, zastánci tradičního přístupu preferují efektivnější využití diskového prostoru. Dalším negativem je, že spouštění aplikací z Snap balíčků může být pomalejší.

Snapům se také vyčítá nedodržování vzhledu uživatelského rozhraní a automatické aktualizace. Někteří uživatelé jsou také opatrní, protože balíčky nemusí být vytvářeny samotnými vývojáři aplikací, což snižuje jejich důvěryhodnost.

V Ubuntu Focal Fossa společnost Canonical nahradila původní aplikaci Ubuntu Software verzí, která ve výchozím nastavení instaluje aplikace jako Snap balíčky. Co to tedy pro vás jako uživatele znamená?

Ubuntu Software Centrum

Pomocí příkazu df s parametrem -t můžeme vypsat seznam připojených systémů souborů SquashFS. Tímto způsobem se omezíme pouze na výpis souborových systémů SquashFS:

df -t squashfs

Příkaz snap list poté zobrazí seznam nainstalovaných Snap balíčků:

snap list

Výsledkem tohoto příkazu je seznam, který obvykle zahrnuje dva Snap balíčky související s pracovním prostředím GNOME, dva pro funkce jádra, jeden pro GTK témata a jeden pro úložiště Snap balíčků. Samotná aplikace Snap Store je samozřejmě také Snap balíčkem.

Zajímavé je, že když spustíte aplikaci snap-store z příkazového řádku, ve skutečnosti spouštíte Ubuntu Software Centrum.

Standardně se Ubuntu Software spouští kliknutím na jeho ikonu. Nicméně, spuštěním z terminálu můžeme demonstrovat, že se pod povrchem jedná o aplikaci snap-store:

snap-store

Aplikace Ubuntu Software vypadá a funguje tak, jak jste zvyklí. Můžete v ní vyhledávat a instalovat software jako doposud.

Pojďme zkusit vyhledat a nainstalovat aplikaci „sqlitebrowser“. Na obrazovce s výsledky se zobrazí detailní informace o aplikaci včetně snímků obrazovky. Pro instalaci zvolte možnost „Instalovat”.

Pokud byste nevěděli, jak se software instaluje, neměli byste tušit žádnou změnu v pozadí systému. Pokud ale posunete zobrazení dolů, uvidíte informace specifické pro Snap balíčky.

V sekci „Podrobnosti“ naleznete tyto informace:

Kanál: Kanál, ze kterého je balíček stahován.
Verze: Aktuální verze aplikace.
Licence: Typ licence softwaru.
Vývojář: Autor Snap balíčku nebo samotné aplikace.
Zdroj: Místo stahování Snap balíčku (snapcraft.io je oficiální obchod Snap balíčků od Canonical).
Velikost stahování: Velikost samotného Snap balíčku.

Kanál může nabývat následujících hodnot:

Stabilní: Standardní kanál s nejstabilnějšími a nejspolehlivějšími balíčky.
Kandidát: Méně stabilní kanál s verzemi, které se blíží finálnímu vydání.
Beta: Verze v pokročilé fázi vývoje, u kterých není zaručena stabilita.
Edge: Určeno pro testery a nadšence. Tento kanál byste neměli používat pro důležitou práci.

Po dokončení instalace můžeme zkontrolovat seznam nainstalovaných Snap balíčků:

snap list

Nově nainstalovaná aplikace se objeví na konci seznamu. Pojďme ji spustit:

sqlitebrowser

Aplikace funguje bez problémů, i když její grafické rozhraní působí poněkud zastarale. Rozhraní svým vzhledem připomíná GUI z minulosti. Nicméně, toto nemusí být typické pro všechny Snap balíčky.

Instalace z příkazového řádku

Z hlediska instalace z příkazového řádku se nic nezměnilo. Stále máte k dispozici příkaz snap pro instalaci a odinstalaci Snap balíčků, stejně jako tradiční nástroje apt-get a apt.

Pojďme si zkusit nainstalovat stejnou aplikaci, sqlitebrowser, z příkazového řádku. Protože verze nainstalovaná předtím je snap, nebudou se nijak ovlivňovat:

sudo apt-get install sqlitebrowser

Po dokončení instalace stačí stisknout klávesu Super a začít psát název aplikace. Uvidíte, že v systému jsou nyní dvě verze aplikace.

Spusťte obě dvě verze.

Jak je vidět, obě verze jsou nainstalovány a spuštěny současně.

Verze v pozadí obrázku je verze nainstalovaná z příkazového řádku, verze v popředí je Snap balíček:

Verze instalovaná pomocí apt-get má číslo 3.11.2.
Snap verze má číslo 3.11.99.

Navzdory zdání je verze z příkazového řádku starší. Důležité je, že obě verze mohou koexistovat a fungovat bez konfliktů. Snap balíčky splňují svůj účel, tj. izolují různé verze stejné aplikace.

Instalace aplikací z příkazového řádku pomocí apt nebo apt-get se tedy nijak nemění a není ovlivněna přítomností Snap balíčků.

Kterou metodu byste měli používat?

Pokud vás nezajímá, jaký typ aplikace používáte, můžete bez problémů používat Snap balíčky.

Pokud vám následující nevýhody vadí, měli byste se vyhnout Ubuntu Software a instalovat aplikace tradičním způsobem:

  • Snap balíčky se spouštějí pomaleji. Na starším hardwaru je tento rozdíl výraznější.
  • Snap balíčky zabírají více místa na pevném disku.
  • Snap balíčky se aktualizují automaticky.
  • Snap balíčky nemusejí odpovídat vašemu motivu vzhledu.
  • Snap balíčky nejsou vždy „oficiální“. Často je tvoří dobrovolníci s dobrými úmysly.

Pokud máte relativně moderní počítač, rozdíl v rychlosti spouštění aplikací z Snap balíčků a tradičním způsobem nemusí být tak velký. Největší zpomalení jsme zaznamenali při instalaci. Stahování Snap balíčků trvá déle. Jakmile je však balíček stažen, instalace probíhá dostatečně rychle. Stahování je ale jednorázová záležitost, takže to by nemělo být tak kritické.

I když jste zastánci Snap balíčků a chcete je používat, nemůžete se na ně spoléhat zcela. Některé aplikace ve formě Snap balíčků nejsou dostupné. V takových případech budete nuceni použít tradiční instalaci z příkazového řádku.

Je zřejmé, že Canonical se tímto krokem zavázal k Snap balíčkům. Pro vývojáře Ubuntu jsou Snap balíčky důležitou součástí strategie. Jako uživatel máte možnost je používat, ignorovat, nebo kombinovat Snap balíčky s tradičními DEB instalacemi.