V posledních několika letech byla linuxová komunita obdařena pozoruhodným pokrokem v oblasti správy balíčků v systémech Linux, zejména pokud jde o univerzální nebo mezidistribuční balení a distribuci softwaru. Jedním z takových pokroků je formát balíčků Snap vyvinutý společností Canonical, tvůrcem populárního Ubuntu Linux.

Co jsou balíčky Snap?

Snapy jsou mezidistribuční, bezzávislostní a snadno instalovatelné aplikace zabalené se všemi svými závislostmi tak, aby fungovaly ve všech hlavních distribucích Linuxu. Z jediného sestavení bude snap (aplikace) fungovat na všech podporovaných distribucích Linuxu na desktopu, v cloudu i v internetu věcí. Mezi podporované distribuce patří Ubuntu, Debian, Fedora, Arch Linux, Manjaro a CentOS/RHEL.

Snapy jsou bezpečné – jsou omezené a sandboxované, takže neohrožují celý systém. Pracují pod různými úrovněmi omezení (což je stupeň izolace od základního systému a od sebe navzájem). A co víc, každý snap má rozhraní pečlivě vybrané tvůrcem snapu na základě jeho požadavků, aby umožňovalo přístup ke specifickým systémovým prostředkům mimo jejich omezení, jako je přístup k síti, přístup k ploše a další.

Dalším důležitým konceptem v ekosystému snapů jsou kanály. Kanál určuje, které vydání snapu se instaluje a sleduje aktualizace, a skládá se ze stop, úrovní rizika a větví a dále se podle nich dělí.

Hlavními součástmi systému správy balíčků snap jsou:

  • snapd – služba na pozadí, která spravuje a udržuje snapy v systému Linux.
  • snap – formát aplikačních balíčků i nástroj rozhraní příkazového řádku, který slouží k instalaci a odstraňování snapů a k mnoha dalším činnostem v ekosystému snap.
  • snapcraft – rámec a výkonný nástroj příkazového řádku pro vytváření snapů.
  • snap store – místo, kde mohou vývojáři sdílet své snapy a uživatelé Linuxu je vyhledávat a instalovat.

Kromě toho se snapy také automaticky aktualizují. Můžete nastavit, kdy a jak budou aktualizace probíhat. Ve výchozím nastavení kontroluje démon snapd aktualizace až čtyřikrát denně: každá kontrola aktualizace se nazývá obnovení. Obnovení můžete iniciovat také ručně.

Jak nainstalovat snapd v systému Linux

Jak bylo popsáno výše, démon snapd je služba na pozadí, která spravuje a udržuje prostředí snap v systému Linux tím, že implementuje zásady omezení a řídí rozhraní, která umožňují snapům přístup k určitým systémovým prostředkům. Poskytuje také příkaz snap a slouží k mnoha dalším účelům.

Pro instalaci balíčku snapd do systému spusťte příslušný příkaz pro vaši distribuci Linuxu.

------------ ------------ $ sudo apt update $ sudo apt install snapd------------ ------------# dnf install snapd------------ ------------# yum install epel-release # yum install snapd------------ ------------$ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy$ sudo zypper --gpg-auto-import-keys refresh$ sudo zypper dup --from snappy$ sudo zypper install snapd------------ ------------# pacman -S snapd------------ ------------# git clone https://aur.archlinux.org/snapd.git# cd snapd# makepkg -si

Po instalaci balíčku snapd do systému povolte jednotku systemd, která spravuje hlavní komunikační soket snap, pomocí následujících příkazů systemctl.

V Ubuntu a jeho derivátech by toto mělo být spuštěno automaticky instalátorem balíčků.

$ sudo systemctl enable --now snapd.socket

Všimněte si, že příkaz snap nelze spustit, pokud není spuštěna jednotka snapd.socket. Spusťte následující příkazy a zkontrolujte, zda je aktivní a zda je povoleno jeho automatické spouštění při startu systému.

$ sudo systemctl is-active snapd.socket$ sudo systemctl status snapd.socket$ sudo systemctl is-enabled snapd.socket
Zkontrolujte stav služby snapd

Dále povolte podporu klasického snapu vytvořením symbolického odkazu mezi /var/lib/snapd/snap a /snap následujícím způsobem.

$ sudo ln -s /var/lib/snapd/snap /snap

Pro kontrolu verze snapd a nástroje příkazového řádku snap nainstalovaného v systému spusťte následující příkaz.

$ snap version 
Kontrola verze snapd a snap

Jak instalovat snapy v Linuxu

Příkaz snap umožňuje instalovat, konfigurovat, obnovovat a odstraňovat snapy a komunikovat s širším ekosystémem snapů.

Před instalací snapu můžete zkontrolovat, zda existuje v úložišti snapů. Pokud aplikace patří například do kategorie „chatovací servery“ nebo „přehrávače médií“, můžete ji vyhledat spuštěním těchto příkazů, které se v úložišti zeptají na dostupné balíčky ve stabilním kanálu.

$ snap find "chat servers"$ snap find "media players"
Vyhledat aplikace v úložišti snap

Chcete-li zobrazit podrobné informace o snapu, například rocketchat-server, můžete zadat jeho název nebo cestu. Všimněte si, že názvy se hledají jak v úložišti snapů, tak v nainstalovaných snapech.

$ snap info rocketchat-server
Zjištění informací o aplikaci ve snapu

Chcete-li do systému nainstalovat snap, například rocketchat-server, spusťte následující příkaz. Pokud nejsou zadány žádné možnosti, nainstaluje se snap sledující kanál „stable“ s přísným omezením zabezpečení.

$ sudo snap install rocketchat-server
Instalace aplikace z obchodu Snap

Můžete se rozhodnout pro instalaci z jiného kanálu: edge, beta nebo candidate, a to z toho či onoho důvodu, pomocí možností --edge, --beta, respektive --candidate. Nebo použijte volbu --channel a zadejte kanál, ze kterého chcete instalovat.

$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server$ sudo snap install --candidate rocketchat-server

Správa snapů v systému Linux

V této části se naučíme spravovat snapy v systému Linux.

Zobrazení nainstalovaných snapů

Chcete-li zobrazit přehled snapů nainstalovaných v systému, použijte následující příkaz.

$ snap list
Seznam nainstalovaných snapů

Chcete-li zobrazit aktuální revizi používaného snapu, zadejte jeho název. Můžete také vypsat všechny jeho dostupné revize přidáním možnosti --all.

$ snap list mailspringOR$ snap list --all mailspring
Seznam všech instalovaných verzí snapu

Aktualizace a vracení snapů

Můžete aktualizovat zadaný snap nebo všechny snapy v systému, pokud žádný není zadán, následujícím způsobem. Příkaz refresh zkontroluje kanál sledovaný snapem a stáhne a nainstaluje novější verzi snapu, pokud je k dispozici.

$ sudo snap refresh mailspringOR$ sudo snap refresh#update all snaps on the local system
Refresh a Snap

Po aktualizaci aplikace na novou verzi se můžete vrátit k dříve používané verzi pomocí příkazu revert. Všimněte si, že se vrátí i data spojená se softwarem.

$ sudo snap revert mailspring
Vrátit přichycení na starší verzi

Při kontrole všech revizí aplikace mailspring je nyní nejnovější revize zakázána, dříve používaná revize je nyní aktivní.

$ snap list --all mailspring
Kontrola revize snapu

Zakázání/povolení a odebrání snapů

Snap můžete zakázat, pokud jej nechcete používat. Po zakázání snapu již nebudou k dispozici jeho binární soubory a služby, nicméně všechna data budou stále k dispozici.

$ sudo snap disable mailspring

Pokud budete chtít snap opět používat, můžete jej opět povolit.

$ sudo snap enable mailspring

Chcete-li snap ze systému zcela odstranit, použijte příkaz remove. Ve výchozím nastavení jsou odstraněny všechny revize snapu.

$ sudo snap remove mailspring

Chcete-li odebrat konkrétní revizi, použijte následující volbu --revision.

$ sudo snap remove --revision=482 mailspring

Klíčové je si uvědomit, že při odebrání snapu jsou jeho data (například interní uživatelská, systémová a konfigurační data) uložena pomocí snapd (verze 2.39 a vyšší) jako snapshot a uložena v systému po dobu 31 dní. V případě, že snap během 31 dnů znovu nainstalujete, můžete data obnovit.

Závěr

Snapy jsou v linuxové komunitě stále populárnější, protože poskytují snadný způsob instalace softwaru v libovolné distribuci Linuxu. V této příručce jsme si ukázali, jak v Linuxu nainstalovat snapy a pracovat s nimi. Věnovali jsme se tomu, jak nainstalovat snapd, nainstalovat snapy, zobrazit nainstalované snapy, aktualizovat a vrátit snapy a zakázat/povolit a odebrat snapy.

Můžete nám položit otázky nebo nás kontaktovat prostřednictvím níže uvedeného formuláře pro zpětnou vazbu. V další části této příručky se budeme zabývat správou snapů (příkazů, aliasů, služeb a snapshotů) v systému Linux.

admin

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

lg