Když nainstalujete softwarové balíčky pro Linux pomocí snap, můžete se rozloučit s peklem závislostí a rozbitím ostatních fungujících aplikací. Balíčky Snap byly původně navrženy pro Ubuntu, ale nyní jsou dostupné v různých distribucích Linuxu.
Table of Contents
Co jsou Snap balíčky?
V minulosti byla instalace aplikací na Linuxu potenciálně frustrující zkušeností. Nainstalovali byste něco, jen abyste zjistili, že konkrétní knihovna nebo jiná závislost chybí nebo je zastaralá. Pak byste vyhledali chybějící zdroj a nainstalovali jej, ale najít jinou aplikaci záviselo na verzi knihovny, kterou jste právě nahradili. Opravte jeden, zlomte jeden, opakujte.
To se zlepšilo díky lepším systémům pro správu balíčků, např apt, dnf, a pacman. Stále však čelíte problému, pokud potřebujete nainstalované různé verze stejné aplikace. Nebo pokud používáte dvě aplikace, které si kolidují, protože jsou svázány s konkrétními – ale odlišnými – verzemi knihovny.
Jedním z řešení těchto problémů jsou systémy pro balení a nasazení aplikací. Elegantní je jedním z nejoblíbenějších z nich. Je založen na systému balení a nasazení nazvaného Click, který se vrací k Ubuntu Touch iniciativa. AppImage a FlatPack jsou další, se kterými jste se mohli setkat.
Tyto systémy zapouzdřují aplikaci spolu se všemi závislostmi a dalšími požadavky do jediného komprimovaného souboru. Aplikace pak běží v jakémsi minikontejneru. Je to sandbox a oddělené od ostatních aplikací. Knihovny a další zdroje, se kterými je aplikace zabalena nebo které vyžaduje, jsou dostupné pouze jí samotné.
Nejsou instalovány v tradičním slova smyslu, takže nezpůsobují žádné problémy s jinými aplikacemi, které vyžadují různé verze stejných prostředků. Můžete dokonce instalovat a spouštět aplikace, které potřebují konfliktní verze knihoven, protože každá aplikace je ve své vlastní karanténě.
Pokud však nejsou nainstalovány obvyklým způsobem, jak se s nimi zachází? Jediný soubor balíčku se stáhne, dekomprimuje a připojí jako SquashFSvirtuální souborový systém. Poté se vám zobrazí jako virtuální prostředí. To vše se odehrává v zákulisí. Vše, co budete vědět, je, že jste nainstalovali aplikaci a nyní k ní máte přístup.
Samozřejmě, protože každý soubor balíčku musí obsahovat všechny prostředky, které aplikace potřebuje, mohou být soubory balíčků velké. Je také snadné duplikovat zdroj, který byste normálně nainstalovali pouze jednou, jako např MySQL nebo Apache. Pokud dvě různé aplikace snap vyžadují stejné prostředky, každá si přinese svou vlastní kopii.
Toto je však kompromisem za jednoduchost instalace a odstranění problémů s konflikty zdrojů.
Instalace snapd
Snappy byl představen s Ubuntu 16.04, takže pokud používáte tuto verzi nebo novější, můžete začít. Na našem počítači byl Snappy nainstalován na Manjaro 18.04, ale museli jsme jej nainstalovat na Fedoru 31.
snap je jak název souborů balíčků, tak příkaz, který používáte k interakci s nimi. Za scénou je démon snapd také název balíčku, který musíte nainstalovat, pokud ještě nemáte Snappy na svém počítači.
Chcete-li nainstalovat snapd na Fedoru, zadejte následující příkaz:
sudo dnf install snapd
Pokud jej potřebujete nainstalovat na Manjaro, použijte tyto příkazy:
sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket
Pomocí příkazu snap version můžete zobrazit verzi klienta snap, démona snapd a sériové číslo softwaru. Zobrazí se vám také název a verze vaší distribuce Linuxu a verze jádra.
Zadejte následující:
snap version
Instalace balíčků snap
Je to docela přímočarý proces instalace balíčku snap. Pomocí snap můžete vyhledat balíčky snap a poté nainstalovat ten, který chcete.
Vyhledáme a nainstalujeme následující editor obrázků gimp:
snap find gimp
snap vyhledává shody s vyhledávacím vodítkem „gimp“ a vrací jeho nálezy. Najde vše, co odpovídá nebo zmiňuje hledaný výraz.
K instalaci jednoho z balíčků použijeme hodnotu ze sloupce Název, jak je uvedeno níže:
sudo snap install gimp
Jak se stahuje, procento dokončených čísel stoupá a nalevo od okna terminálu se plíží ukazatel průběhu. Po dokončení instalace se zobrazí zpráva (jak je uvedeno níže), která vám sdělí, že byl balíček nainstalován.
Můžete použít příkaz df zkontrolujte kapacitu a využití z různých systémů souborů nakonfigurovaných na vašem počítači se systémem Linux. Pokud jeho výstup převedeme do příkazu grep a vyhledáme „gimp“, my izolujte záznam pro balíček právě jsme nainstalovali.
Zadáme následující:
df | grep gimp
To nám ukazuje, že balíček snap byl připojen, jako by to byl souborový systém. Přípojný bod je v adresáři snap zde: /snap/gimp/252. „252“ je číslo vydání této verze gimpu.
Souborový systém je uveden jako: /dev/loop18. Soubory zařízení smyčky se používají ke zpřístupnění běžných souborů jako bloková zařízení. Obvykle se používají pro připojení souborových systémů do obrazů disku. V tomto případě připojují souborový systém SquashFS do balíčku snap. „18“ znamená, že se jedná o 18. soubor zařízení /dev/loop používaný na tomto počítači se systémem Linux.
Pro rychlou kontrolu můžeme použít příkaz df. Použijeme volbu – t (type) k omezení výstupu pouze na typy souborů SquashFS.
Zadáme následující:
df -t squashfs
Jsou uvedeny připojené souborové systémy SquashFS. Každý z nich zpracovává soubor zařízení /dev/loop a je jich 18.
Každý souborový systém je připojen do adresáře v adresáři /snap. To však neznamená, že je na tomto počítači nainstalováno 18 různých balíčků snap. Toto je distribuce Ubuntu, takže některé balíčky snap jsou nainstalovány hned po vybalení z krabice a právě jsme nainstalovali další.
Navíc, když nainstalujete snapd, nainstaluje se některé základní balíčky snap, aby zvládly potřeby jiných balíčků snap.
K zobrazení seznamu nainstalovaných balíčků snap můžeme použít příkaz snap list, jak je uvedeno níže:
snap list
Výstup byl trochu široký, takže konec výpisů je uveden níže.
Zde je celý výpis:
Name Version Rev Tracking Publisher Notes core 16-2.43.3 8689 stable canonical* core core18 20200124 1668 stable canonical* base gimp 2.10.18 252 stable snapcrafters - gnome-3-26-1604 3.26.0.20191114 98 stable/… canonical* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 stable canonical* - gnome-calculator 3.34.1+git1.d34dc842 544 stable/… canonical* - gnome-characters v3.32.1+git3.b9120df 399 stable/… canonical* - gnome-logs 3.34.0 81 stable/… canonical* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 stable/… canonical* - gtk-common-themes 0.1-28-g1503258 1440 stable/… canonical* -
Jak můžete vidět, je nainstalováno 10 snap balíčků, nikoli 18. Nicméně těchto 10 balíčků dalo vzniknout 18 souborovým systémům SquashFS. Sloupce tabulky jsou poměrně samozřejmé, ale zde je určité vysvětlení:
Název: Název balíčku snap, který byl nainstalován.
Verze: Číslo verze softwaru v balíčku snap.
Rev: Číslo revize balíčku snap.
Sledování: Kanál, který tento balíček snapů sleduje kvůli aktualizacím. Jsou čtyři:
Stabilní: Výchozí kanál. Jak název napovídá, tento kanál obsahuje nejstabilnější balíčky.
Kandidát: Tento kanál je méně stabilní, ale je mu velmi blízký, protože obsahuje software na úrovni kandidáta na vydání, který je kompletní s kódem. Než se přesune do stabilního kanálu, prochází závěrečným testováním.
Beta: Tento kanál má kvalitu pozdního vývojového cyklu, ale není zaručeno, že bude stabilní.
Edge: Pro začínající testery sestavení. Tento kanál byste neměli používat pro důležitou práci nebo na produkčním počítači. Tady jsou draci!
Vydavatel: Jednotlivec, společnost nebo organizace, která vydala balíček snap. Pokud se jednalo o ověřeného vydavatele (a vaše okno terminálu podporuje Unicode), uvidíte zelené zaškrtnutí vedle názvu vydavatele. Pokud nemůže zobrazit zaškrtnutí, zobrazí se hvězdička
.
Poznámky: Zde se zobrazí jakékoli komentáře nebo další informace.
Kanály snap
Pomocí možnosti info můžete získat popis balíčku snap.
snap info gtk-common-themes
The
Můžeme vidět, který kanál balíček sleduje, a verzi softwaru v balíčcích snap v každém ze čtyř kanálů. Ve většině případů byste měli zůstat na stabilním kanálu.
Balíček snap kontroluje čtyřikrát denně, aby zjistil, zda je na kanálu, který sleduje nebo „sleduje“, k dispozici novější verze softwaru. Chcete-li změnit kanál, který balíček uchopuje, můžete použít volby refresh a –channel.
sudo snap refresh gtk-common-themes --channel=beta
The
Pokud by byla k dispozici novější verze softwaru, byla by nainstalována, ale v tomto případě tomu tak nebylo. Balíček snap však nyní sleduje beta kanál. Jakmile vyjde nová beta verze, automaticky se stáhne a upgraduje.
Pomocí volby –list můžete zkontrolovat, zda jsou dostupné aktualizace pro některý z balíčků snap nainstalovaných na vašem počítači.
sudo snap refresh --list
The
Budete informováni, zda některý z kanálů, které sledují balíčky snap na vašem počítači, obsahuje novější verze softwaru.
sudo snap refresh gtk-common-themes
The
Odstranění záchytného balíčku
sudo snap remove gimp
The
Snapový Cheat Sheet
Použití balíčků snap je docela jednoduché, ale sestavili jsme seznam některých příkazů, které vám pomohou:
Chcete-li vyhledat balíček: snap find package_name
Instalace balíčku: sudo snap install název_balíčku
Pro zobrazení všech nainstalovaných balíčků: snap list
Chcete-li získat informace o jednom balíčku: informace o snapu název_balíčku
Chcete-li změnit kanál, balíček sleduje aktualizace: sudo snap refresh název_balíčku –kanál=název_kanálu
Chcete-li zjistit, zda jsou aktualizace připraveny pro některé nainstalované balíčky: sudo snap refresh –list
Pro ruční aktualizaci balíčku: sudo snap refresh package_name
Odinstalování balíčku: sudo snap remove package_name