Vyhledávání na webu

Průvodce pro začátečníky Snaps v Linuxu – část 1


V posledních několika letech byla linuxová komunita požehnána některými pozoruhodnými pokroky v oblasti správy balíčků na linuxových systémech, zejména pokud jde o univerzální nebo multidistribuční softwarové balení a distribuci. Jedním z takových vylepšení je formát balíčku Snap vyvinutý společností Canonical, tvůrci populárního Ubuntu Linux.

Co jsou balíčky Snap?

Snaps jsou aplikace pro různé distribuce, bez závislostí a snadno instalovatelné aplikace, které jsou zabaleny se všemi jejich závislostmi a lze je spustit ve všech hlavních distribucích Linuxu. Z jednoho sestavení poběží snap (aplikace) na všech podporovaných linuxových distribucích na desktopu, v cloudu i IoT. Mezi podporované distribuce patří Ubuntu, Debian, Fedora, Arch Linux, Manjaro a CentOS/RHEL.

Snapy jsou bezpečné – jsou omezené a izolované, takže neohrožují celý systém. Probíhají pod různými úrovněmi omezení (což je stupeň izolace od základního systému a od sebe navzájem). Ještě pozoruhodnější je, že každý snap má rozhraní pečlivě vybrané tvůrcem snapu na základě požadavků snapu, aby poskytovalo přístup ke konkrétním systémovým zdrojům mimo jejich omezení, jako je přístup k síti, přístup na plochu a další.

Dalším důležitým konceptem v ekosystému snap jsou Kanály. Kanál určuje, které vydání snapu je nainstalováno a sledováno pro aktualizace, a skládá se ze stop, úrovní rizik a větví a je dále rozděleno podle nich.

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

  • snapd – služba na pozadí, která spravuje a udržuje vaše snímky v systému Linux.
  • snap – formát balíčku aplikace i nástroj rozhraní příkazového řádku používaný k instalaci a odstraňování snapů a provádění mnoha dalších věcí v ekosystému snap.
  • snapcraft – rámec a výkonný nástroj příkazového řádku pro vytváření snímků.
  • snap store – místo, kde mohou vývojáři sdílet své snímky a uživatelé Linuxu je vyhledávají a instalují.

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

Jak nainstalovat Snapd v Linuxu

Jak je popsáno výše, démon snapd je služba na pozadí, která spravuje a udržuje vaše prostředí snap v systému Linux implementací zásad omezení a řízením rozhraní, která umožňují přichytávání přístup ke konkrétním systémovým zdrojům. Poskytuje také příkaz snap a slouží mnoha dalším účelům.

Chcete-li do systému nainstalovat balíček snapd, spusťte příslušný příkaz pro vaši distribuci Linuxu.

------------ [On Debian and Ubuntu] ------------ 
sudo apt update 
sudo apt install snapd

------------ [On Fedora Linux] ------------
dnf install snapd			

------------ [On CentOS and RHEL] ------------
yum install epel-release 
yum install snapd		

------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------
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

------------ [On Manjaro Linux] ------------
pacman -S snapd

------------ [On Arch Linux] ------------
git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si

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

Na Ubuntu a jeho derivátech by to mělo být spouštěno automaticky instalačním programem balíčku.

sudo systemctl enable --now snapd.socket

Pamatujte, že příkaz snap nemůžete spustit, pokud není spuštěn snapd.socket. Spuštěním následujících příkazů zkontrolujte, zda je aktivní a zda je povoleno automatické spouštění při spouštění 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 uchopení vytvořením symbolického propojení mezi /var/lib/snapd/snap a /snap následujícím způsobem.

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

Chcete-li zkontrolovat verzi snapd a nástroje příkazového řádku snap nainstalovaných ve vašem systému, spusťte následující příkaz.

snap version 

Jak nainstalovat Snaps v Linuxu

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

Před instalací snapu můžete zkontrolovat, zda v úložišti snap existuje. Pokud například aplikace patří do kategorie „chat servery “ nebo „přehrávače médií“, můžete spustit tyto příkazy a vyhledat ji, čímž se dotáže obchod pro 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 k dispozici žádné možnosti, nainstaluje se snap sledující kanál „stabilní “ s přísným bezpečnostním omezením.

sudo snap install rocketchat-server

Můžete se rozhodnout pro instalaci z jiného kanálu: edge, beta nebo kandidát z jednoho nebo druhého důvodu pomocí --edge, --beta, respektive --candidate. Nebo použijte možnost --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 Snaps v Linuxu

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

Zobrazení nainstalovaných snímků

Chcete-li zobrazit souhrn snímků nainstalovaných ve vašem systému, použijte následující příkaz.

snap list

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

snap list mailspring
OR
snap list --all mailspring

Aktualizace a vracení snímků

Můžete aktualizovat zadaný uchopení nebo všechny uchopení v systému, pokud žádný není určen následovně. Příkaz refresh zkontroluje kanál sledovaný snapem a stáhne a nainstaluje novější verzi snapu, pokud je k dispozici.

sudo snap refresh mailspring
OR
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. Upozorňujeme, že data spojená se softwarem budou také vrácena.

sudo snap revert mailspring

Když nyní zkontrolujete všechny revize mailspring, nejnovější revize je zakázaná, dříve použitá revize je nyní aktivní.

snap list --all mailspring

Zakázání/povolení a odebrání uchopení

Pokud jej nechcete používat, můžete deaktivovat přichycení. Když je zakázáno, binární soubory a služby snapu již nebudou k dispozici, ale všechna data tam budou stále.

sudo snap disable mailspring

Pokud potřebujete snap znovu použít, můžete jej znovu aktivovat.

sudo snap enable mailspring

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

sudo snap remove mailspring

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

sudo snap remove  --revision=482 mailspring

Je důležité si uvědomit, že když odeberete snap, jeho data (jako jsou interní uživatel, systém a konfigurační data) uloží snapd (verze 2.39 a vyšší) jako snímek a uloženy v systému po dobu 31 dnů. V případě, že modul snap znovu nainstalujete do 31 dnů, můžete data obnovit.

Závěr

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

Můžete se ptát nebo nás kontaktovat prostřednictvím formuláře pro zpětnou vazbu níže. V další části této příručky se budeme zabývat správou snapů (příkazů, aliasů, služeb a snímků) v Linuxu.