W ciągu ostatnich kilku lat społeczność linuksowa została pobłogosławiona kilkoma znaczącymi postępami w dziedzinie zarządzania pakietami w systemach linuksowych, szczególnie jeśli chodzi o uniwersalne lub międzydystrybucyjne pakowanie i dystrybucję oprogramowania. Jednym z takich postępów jest format pakietów Snap opracowany przez Canonical, twórców popularnego Ubuntu Linux.
Czym są pakiety Snap?
Pakiety Snap są uniwersalnymi, wolnymi od zależności i łatwymi do zainstalowania aplikacjami, spakowanymi wraz z wszystkimi ich zależnościami, aby działały na wszystkich głównych dystrybucjach Linuksa. Z jednej kompilacji, snap (aplikacja) będzie działać na wszystkich wspieranych dystrybucjach Linuksa na pulpicie, w chmurze i IoT. Obsługiwane dystrybucje to Ubuntu, Debian, Fedora, Arch Linux, Manjaro i CentOS/RHEL.
Snapy są bezpieczne – są ograniczone i sandboxowane tak, że nie narażają całego systemu. Działają na różnych poziomach zamknięcia (czyli stopnia odizolowania od systemu bazowego i siebie nawzajem). Co więcej, każdy snap ma interfejs starannie wybrany przez twórcę snapa, w oparciu o wymagania snapa, aby zapewnić dostęp do określonych zasobów systemowych poza ich ograniczeniem, takich jak dostęp do sieci, dostęp do pulpitu i więcej.
Innym ważnym pojęciem w ekosystemie snapów są kanały. Kanał określa, które wydanie snapa jest instalowane i śledzone pod kątem aktualizacji, i składa się z i jest podzielony przez, ścieżki, poziomy ryzyka i gałęzie.
Główne składniki systemu zarządzania pakietami snap to:
- snapd – usługa tła, która zarządza i utrzymuje snapy w systemie Linux.
- snap – zarówno format pakietu aplikacji, jak i narzędzie interfejsu wiersza poleceń używane do instalowania i usuwania snapów oraz robienia wielu innych rzeczy w ekosystemie snapów.
- snapcraft – szkielet i potężne narzędzie wiersza poleceń do budowania snapów.
- snap store – miejsce, w którym programiści mogą udostępniać swoje snapy, a użytkownicy Linuksa wyszukiwać je i instalować.
Poza tym snapy aktualizują się automatycznie. Można skonfigurować, kiedy i w jaki sposób aktualizacje się pojawiają. Domyślnie demon snapd sprawdza dostępność aktualizacji do czterech razy dziennie: każde sprawdzenie aktualizacji nazywane jest odświeżeniem. Można również ręcznie zainicjować odświeżenie.
Jak zainstalować Snapd w Linuksie
Jak opisano powyżej, demon snapd jest usługą tła, która zarządza i utrzymuje środowisko snapów w systemie Linux, wdrażając zasady ograniczania i kontrolując interfejsy, które pozwalają snapom uzyskać dostęp do określonych zasobów systemowych. Udostępnia również polecenie snap i służy do wielu innych celów.
Aby zainstalować pakiet snapd w systemie, uruchom odpowiednie polecenie dla swojej dystrybucji Linuksa.
------------ ------------ $ 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 zainstalowaniu snapd w systemie włącz jednostkę systemd, która zarządza głównym gniazdem komunikacyjnym snapów, za pomocą poleceń systemctl w następujący sposób.
Na Ubuntu i jego pochodnych, to powinno być wywołane automatycznie przez instalator pakietów.
$ sudo systemctl enable --now snapd.socket
Zauważ, że nie można uruchomić polecenia snap, jeśli snapd.socket nie jest uruchomiony. Uruchom następujące polecenia, aby sprawdzić, czy jest ono aktywne i włączone do automatycznego uruchamiania przy starcie systemu.
$ sudo systemctl is-active snapd.socket$ sudo systemctl status snapd.socket$ sudo systemctl is-enabled snapd.socket
Następnie włącz obsługę klasycznego snapa, tworząc dowiązanie symboliczne między /var/lib/snapd/snap i /snap w następujący sposób.
$ sudo ln -s /var/lib/snapd/snap /snap
Aby sprawdzić wersję snapd i narzędzia wiersza poleceń snap zainstalowanego w systemie, uruchom następujące polecenie.
$ snap version
Jak zainstalować snapy w systemie Linux
Komenda snap umożliwia instalowanie, konfigurowanie, odświeżanie i usuwanie snapów oraz interakcję z większym ekosystemem snapów.
Przed zainstalowaniem snapa można sprawdzić, czy istnieje on w magazynie snapów. Na przykład, jeśli aplikacja należy do kategorii „serwerów czatu” lub „odtwarzaczy multimedialnych”, można uruchomić te polecenia, aby ją wyszukać, co spowoduje wyszukanie w sklepie dostępnych pakietów w kanale stabilnym.
$ snap find "chat servers"$ snap find "media players"
Aby wyświetlić szczegółowe informacje o snapie, na przykład rocketchat-server, można określić jego nazwę lub ścieżkę. Należy pamiętać, że nazwy są szukane zarówno w magazynie snapów, jak i w zainstalowanych snapach.
$ snap info rocketchat-server
Aby zainstalować snap w systemie, na przykład rocketchat-server, wykonaj następujące polecenie. Jeśli nie podano żadnych opcji, snap jest instalowany w kanale „stable”, z zachowaniem ścisłych ograniczeń bezpieczeństwa.
$ sudo snap install rocketchat-server
Możesz zdecydować się na instalację z innego kanału: edge, beta lub candidate, z jednego lub drugiego powodu, używając odpowiednio opcji --edge
, --beta
lub --candidate
. Lub użyj opcji --channel
i określ kanał, z którego chcesz zainstalować.
$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server$ sudo snap install --candidate rocketchat-server
Zarządzanie snapami w systemie Linux
W tym rozdziale dowiemy się, jak zarządzać snapami w systemie Linux.
Wyświetlanie zainstalowanych snapsów
Aby wyświetlić podsumowanie snapsów zainstalowanych w systemie, użyj następującego polecenia.
$ snap list
Aby wyświetlić bieżącą rewizję używanego snapa, podaj jego nazwę. Można także wyświetlić listę wszystkich dostępnych wersji, dodając opcję --all
.
$ snap list mailspringOR$ snap list --all mailspring
Uaktualnianie i odwracanie snapów
Można zaktualizować określony snap lub wszystkie snapy w systemie, jeśli żaden nie został określony w następujący sposób. Polecenie odśwież sprawdza kanał śledzony przez snap, a następnie pobiera i instaluje nowszą wersję snapa, jeśli jest dostępna.
$ sudo snap refresh mailspringOR$ sudo snap refresh#update all snaps on the local system
Po zaktualizowaniu aplikacji do nowej wersji można przywrócić poprzednio używaną wersję za pomocą polecenia revert. Należy pamiętać, że dane związane z programem również zostaną przywrócone.
$ sudo snap revert mailspring
Teraz, gdy sprawdzasz wszystkie rewizje mailspringa, najnowsza rewizja jest wyłączona, poprzednio używana rewizja jest teraz aktywna.
$ snap list --all mailspring
Włączanie i usuwanie snapów
Możesz wyłączyć snap, jeśli nie chcesz go używać. Po wyłączeniu pliki binarne i usługi snapa nie będą już dostępne, jednak wszystkie dane będą nadal dostępne.
$ sudo snap disable mailspring
Jeśli chcesz ponownie użyć snapa, możesz go ponownie włączyć.
$ sudo snap enable mailspring
Aby całkowicie usunąć snapa z systemu, użyj polecenia remove. Domyślnie usuwane są wszystkie rewizje snapa.
$ sudo snap remove mailspring
Aby usunąć konkretną rewizję, użyj opcji --revision
w następujący sposób.
$ sudo snap remove --revision=482 mailspring
Należy pamiętać, że po usunięciu snapa jego dane (takie jak wewnętrzne dane użytkownika, systemu i konfiguracji) są zapisywane przez snapd (wersja 2.39 i nowsze) jako migawka i przechowywane w systemie przez 31 dni. W przypadku reinstalacji snapa w ciągu 31 dni można przywrócić dane.
Podsumowanie
Snapy stają się coraz bardziej popularne w społeczności linuksowej, ponieważ zapewniają łatwy sposób instalowania oprogramowania w dowolnej dystrybucji Linuksa. W tym przewodniku, pokazaliśmy jak zainstalować i pracować z snapami w Linuksie. Pokazaliśmy jak zainstalować snapd, zainstalować snaps, przeglądać zainstalowane snaps, aktualizować i przywracać snaps, oraz wyłączać/włączać i usuwać snaps.
Możesz zadawać pytania lub skontaktować się z nami poprzez formularz opinii poniżej. W następnej części tego przewodnika, zajmiemy się zarządzaniem snaps (komendy, aliasy, usługi i snapshoty) w Linuksie.