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
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
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"
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
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
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
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
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
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
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
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.