Jak pracovat s balíčky Snap na Linuxu

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.

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.

  Jak převést PNG na JPG v Linuxu

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

The

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

The

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

The

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

The

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.

A

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

The

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.

  Jak odebrat inteligentní značky ze sešitu v aplikaci Excel

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

The

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!

  Jak zastavit náhodné snímky obrazovky na iPhone

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

Za tímto účelem zadáme následující:

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

Za tímto účelem zadáme následující:

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

Za tímto účelem zadáme následující:

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

Pokud je k dispozici novější verze softwaru, můžete použít možnost aktualizace, jak je uvedeno níže, k ručnímu vynucení obnovení:

The

Odstranění záchytného balíčku

sudo snap remove gimp

Chcete-li odinstalovat balíček snap, můžete použít možnost odebrat, jak je uvedeno níže:

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