V ekosystému Linuxu existuje mnoho odlišných metod, jak instalovat software. Setkáváme se s balíčky Debianu, Red Hat RPM, uživatelským repozitářem Arch Linuxu, stromem Gentoo Portage, AppImages, archivy tar.gz se statickými binárkami a výčet by mohl pokračovat. Nicméně i přes rozmanitost způsobů instalace softwaru na Linux, stále narážíme na problémy. Kupříkladu, při vývoji profesionálního softwaru pro Linux je velmi komplikované zajistit jeho dostupnost pro všechny linuxové distribuce. Vývojáři v Ubuntu se rozhodli tento problém řešit. Jejich odpovědí jsou balíčky Snap. Podívejme se na důvody, proč jsou balíčky Snap pro Linux potřebné, jak se používají a instalují.
UPOZORNĚNÍ: Na konci tohoto textu najdete video tutoriál.
Proč vznikly balíčky Snap
Vývojáři často tráví čas vytvářením různých balíčků pro svůj software, což je demotivuje. Vytváření všech těchto typů balíčků zabere hodně času, což vede k tomu, že mnoho programů se do Linuxu vůbec nedostane. Proto vývojáři v Ubuntu představili balíčky Snap. Snap je balíček, který lze instalovat z repozitáře snapů a obsahuje vše, co program potřebuje ke svému fungování.
To znamená, že všechny potřebné komponenty aplikace (knihovny, spustitelné soubory, obrázky, zvuky a podpůrné programy) jsou obsaženy v jednom celku a mohou běžet nezávisle na systému. Díky tomu je zaručeno, že program poběží bez ohledu na to, zda je hostitelský systém zastaralý nebo nesprávně nastavený. To v podstatě umožňuje instalaci snapů na jakoukoli linuxovou distribuci, čímž se stávají „univerzálním instalátorem“, který může využít jakýkoli vývojář, a dokonce si vytvořit vlastní úložiště snapů!
Instalace a spuštění Snapd
Snapd je technologie, která umožňuje spouštění snapů v Linuxu. Společnost, která stojí za vývojem snapů, spolupracovala s vývojáři dalších linuxových distribucí, aby bylo možné snapy snadno spouštět a instalovat na nejrozšířenějších linuxových distribucích. Níže uvádíme postup, jak Snapd spustit:
Poznámka: Uživatelé Ubuntu a distribucí na něm založených nemusí Snapd instalovat.
Debian testování/nestabilní
sudo apt install snapd
Fedora
sudo dnf install snapd sudo systemctl enable --now snapd.socket
Arch Linux
sudo pacman -S snapd sudo systemctl enable --now snapd.socket
OpenSUSE Leap 42.2
sudo zypper addrepo https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_42.2/ snappy sudo zypper install snapd sudo systemctl enable --now snapd.socket
OpenSUSE Tumbleweed
sudo zypper addrepo https://download.opensuse.org/repositories/system:/snappy/openSUSE_Tumbleweed/ snappy sudo zypper install snapd sudo systemctl enable --now snapd.socket
Gentoo
sudo -s
nano -w /etc/portage/repos.conf/gentoo-snappy.conf
Vložte následující:
[gentoo-snappy] # Neoficiální overlay, který podporuje instalaci "Snappy" základny. # Správce: Clayton "kefnab" Dobbs ([email protected]) # Hlavní správce: Zygmunt "zyga" Krynicki ([email protected]) location = /usr/local/portage/gentoo-snappy sync-type = git sync-uri = https://github.com/zyga/gentoo-snappy.git priority = 50 auto-sync = yes
Uložte konfigurační soubor pomocí ctrl + O.
emaint sync --repo gentoo-snappy
Používání Snapů
Jak již bylo zmíněno, snapy se nacházejí v „úložišti snapů“, které spravují Ubuntu a Canonical. Kdokoli může zdarma zveřejnit snap. Pro ty, kteří chtějí publikovat své vlastní snap balíčky v obchodě, je zde Snapcraft.io. Tato webová stránka obsahuje veškeré potřebné informace, které vám pomohou začít.
Pro vyhledání softwaru v obchodě použijte příkaz find
:
snap find nazev_programu
Například:
snap find telegram
Tím se zobrazí seznam všech instalovatelných snap balíčků s klíčovým slovem „telegram“. Projděte si seznam a vyberte balíček, který chcete nainstalovat. Následně použijte příkaz install
, abyste ho nainstalovali.
sudo snap install telegram-latest
Tento příkaz stáhne nejnovější verzi snapu z obchodu, nainstaluje ji do systému a následně připojí kontejner snapu, aby uživatel mohl software v něm používat. Pro zobrazení umístění připojení modulu použijte příkaz lsblk
. Software je připojen jako svazek, a proto se od jiných připojených pevných disků nebo zařízení neliší.
Odeberte nainstalované snap balíčky ze systému pomocí příkazu remove
.
Například:
sudo snap remove telegram-latest
Zapomněli jste název snapu, který chcete odstranit? Zkuste toto:
snap list
Příkaz list
zobrazí seznam všech nainstalovaných snapů. Odtud si poznamenejte název snapu a poté ho pomocí výše uvedeného příkazu remove
odstraňte ze systému.
Poznámka: Další příkazy, které nejsou zmíněny v tomto textu, najdete pomocí příkazu snap --help
Aktualizace snapů
Stejně jako jakýkoli jiný software, i snapy je třeba aktualizovat. Démon snap spravuje každý kontejner snap v systému. Z tohoto důvodu se snap balíčky neaktualizují běžnými způsoby. Pro aktualizaci nainstalovaných snap balíčků použijte příkaz refresh
, který je posledním zásadním příkazem pro správu snapů.
sudo snap refresh
Závěr
Balíčky Snap mají potenciál změnit způsob, jakým instalujeme a používáme software v Linuxu, a to díky zjednodušení distribuce. Místo toho, aby vývojáři softwaru museli vytvářet několik různých balíčků, binárek a metod doručení pro dosažení stejného cíle, vytvoří pouze jeden kontejner snap. Tento kontejner je samostatný, obsahuje knihovny, spustitelný kód a další důležité soubory a uživatelé jej mohou snadno nainstalovat jedním příkazem.
Snapy nejsou dokonalé. Někteří noví uživatelé Linuxu mohou mít s jejich používáním potíže, protože instalace aplikací probíhá pouze pomocí příkazového řádku. Doufejme, že s rostoucí popularitou snap balíčků vývojáři v Ubuntu pracují na vytvoření uživatelsky příjemného rozhraní pro instalaci a používání snapů. Do té doby budeme muset používat příkazový řádek.