Vodič za početnike za Snaps u Linuxu - 1. dio


U proteklih nekoliko godina, Linux zajednica je bila blagoslovljena sa nekim izuzetnim napretkom u oblasti upravljanja paketima na Linux sistemima, posebno kada je u pitanju univerzalna ili unakrsna distribucija softverskog pakovanja i distribucije. Jedan od takvih napretka je format paketa Snap koji je razvio Canonical, proizvođač popularnog Ubuntu Linuxa.

Šta su Snap paketi?

Snapsovi su aplikacije koje se međusobno distribuiraju, bez ovisnosti i koje se lako instaliraju upakovane sa svim njihovim ovisnostima za rad na svim glavnim distribucijama Linuxa. Iz jedne gradnje, snap (aplikacija) će se pokrenuti na svim podržanim distribucijama Linuxa na desktopu, u oblaku i IoT-u. Podržane distribucije uključuju Ubuntu, Debian, Fedora, Arch Linux, Manjaro i CentOS/RHEL.

Snapovi su sigurni – zatvoreni su i zaštićeni tako da ne kompromituju cijeli sistem. Oni rade pod različitim nivoima zatvaranja (što je stepen izolacije od osnovnog sistema i jedan od drugog). Još značajnije, svaki snimak ima interfejs koji je pažljivo odabrao kreator snap-a, na osnovu zahteva snap-a, kako bi se obezbedio pristup specifičnim sistemskim resursima izvan njihovog ograničenja, kao što su pristup mreži, pristup radnoj površini i još mnogo toga.

Još jedan važan koncept u snap ekosistemu su Kanali. Kanal određuje koje je izdanje snap-a instalirano i praćeno za ažuriranja i sastoji se od staza, nivoa rizika i grana i podijeljen je po njima.

Glavne komponente sistema za upravljanje snap paketima su:

  • snapd – usluga u pozadini koja upravlja i održava vaše snimke na Linux sistemu.
  • snap – i format paketa aplikacije i alat za interfejs komandne linije koji se koristi za instaliranje i uklanjanje snimaka i za mnoge druge stvari u ekosistemu snap.
  • snapcraft – okvir i moćan alat komandne linije za pravljenje snimaka.
  • snap store – mjesto gdje programeri mogu dijeliti svoje snimke, a korisnici Linuxa ih pretražuju i instaliraju.

Osim toga, snimci se također automatski ažuriraju. Možete konfigurirati kada i kako će se ažuriranja pojaviti. Podrazumevano, snapd demon provjerava ažuriranja do četiri puta dnevno: svaka provjera ažuriranja naziva se osvježavanje. Osvježavanje možete pokrenuti i ručno.

Kako instalirati Snapd u Linux

Kao što je gore opisano, snapd daemon je pozadinska usluga koja upravlja i održava vaše snap okruženje na Linux sistemu, implementacijom politika ograničenja i kontrolom interfejsa koji omogućavaju snap pristup određenim sistemskim resursima. Također pruža naredbu snap i služi u mnoge druge svrhe.

Da instalirate snapd paket na vaš sistem, pokrenite odgovarajuću naredbu za vašu Linux distribuciju.

------------ [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

Nakon što instalirate snapd na vaš sistem, omogućite systemd jedinicu koja upravlja glavnom snap komunikacijskom utičnicom, koristeći systemctl komande kako slijedi.

Na Ubuntuu i njegovim derivatima, ovo bi trebalo automatski pokrenuti instalater paketa.

sudo systemctl enable --now snapd.socket

Imajte na umu da ne možete pokrenuti naredbu snap ako snapd.socket nije pokrenut. Pokrenite sljedeće naredbe da provjerite da li je aktivna i da li je omogućeno automatsko pokretanje pri pokretanju sistema.

sudo systemctl is-active snapd.socket
sudo systemctl status snapd.socket
sudo systemctl is-enabled snapd.socket

Zatim omogućite podršku za klasično snap kreiranjem simboličke veze između /var/lib/snapd/snap i /snap kako slijedi.

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

Da provjerite verziju snapd i snap alata komandne linije instalirane na vašem sistemu, pokrenite sljedeću naredbu.

snap version 

Kako instalirati Snaps u Linux

Naredba snap vam omogućava da instalirate, konfigurirate, osvježite i uklonite snap, i interakciju sa većim ekosistemom snap.

Prije instaliranja snap-a, možete provjeriti da li postoji u snap store-u. Na primjer, ako aplikacija pripada kategoriji "chat serveri" ili "media playeri", možete pokrenuti ove komande da biste je tražili, što će upiti prodavnicu za dostupne pakete u stabilnom kanalu.

snap find "chat servers"
snap find "media players"

Za prikaz detaljnih informacija o snap-u, na primjer, rocketchat-serveru, možete odrediti njegovo ime ili putanju. Imajte na umu da se imena traže i u snap prodavnici i u instaliranim snapovima.

snap info rocketchat-server

Da instalirate snap na svoj sistem, na primjer, rocketchat-server, pokrenite sljedeću naredbu. Ako nema opcija, instalira se snap koji prati “stabilan” kanal, sa striktnim sigurnosnim ograničenjima.

sudo snap install rocketchat-server

Možete se odlučiti za instalaciju sa drugog kanala: edge, beta ili kandidat, iz jednog ili drugog razloga, koristeći --edge, --beta, odnosno --candidate opcije. Ili koristite opciju --channel i navedite kanal sa kojeg želite da instalirate.

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

Upravljajte Snaps-ovima u Linuxu

U ovom odeljku ćemo naučiti kako upravljati snapovima u Linux sistemu.

Pregled instaliranih snimaka

Da biste prikazali sažetak snapova instaliranih na vašem sistemu, koristite sljedeću naredbu.

snap list

Da navedete trenutnu reviziju snapa koji se koristi, navedite njegovo ime. Također možete navesti sve njegove dostupne revizije dodavanjem opcije --all.

snap list mailspring
OR
snap list --all mailspring

Ažuriranje i vraćanje snimaka

Možete ažurirati određeni snimak ili sve snimke u sistemu ako nijedno nije navedeno na sljedeći način. Komanda osvježi provjerava kanal koji prati snimak i preuzima i instalira noviju verziju snap-a ako je dostupna.

sudo snap refresh mailspring
OR
sudo snap refresh		#update all snaps on the local system

Nakon ažuriranja aplikacije na novu verziju, možete se vratiti na prethodno korištenu verziju pomoću naredbe vrati. Imajte na umu da će podaci povezani sa softverom također biti vraćeni.

sudo snap revert mailspring

Sada kada provjerite sve revizije mailspring, najnovija revizija je onemogućena, prethodno korištena revizija je sada aktivna.

snap list --all mailspring

Onemogućavanje/omogućavanje i uklanjanje snimaka

Možete onemogućiti snap ako ga ne želite koristiti. Kada je onemogućeno, binarne datoteke i usluge snap-a više neće biti dostupne, međutim, svi podaci će i dalje biti tamo.

sudo snap disable mailspring

Ako trebate ponovo koristiti kopčanje, možete ga omogućiti nazad.

sudo snap enable mailspring

Da biste potpuno uklonili snimak sa vašeg sistema, koristite naredbu ukloni. Prema zadanim postavkama, sve revizije snap-a su uklonjene.

sudo snap remove mailspring

Da uklonite određenu reviziju, koristite opciju --revision kako slijedi.

sudo snap remove  --revision=482 mailspring

Ključno je napomenuti da kada uklonite snap, njegove podatke (kao što su podaci o internom korisniku, sistemu i konfiguraciji) sprema snapd (verzija 2.39 i novija) kao snimak i pohranjen na sistemu 31 dan. U slučaju da ponovo instalirate snap u roku od 31 dan, možete vratiti podatke.

Zaključak

Snapsovi postaju sve popularniji u Linux zajednici jer pružaju jednostavan način za instaliranje softvera na bilo koju Linux distribuciju. U ovom vodiču smo pokazali kako instalirati i raditi sa snapovima u Linuxu. Objasnili smo kako instalirati snapd, instalirati snapove, pregledati instalirane snimke, ažurirati i vratiti snimke, te onemogućiti/omogućiti i ukloniti snap.

Možete postaviti pitanja ili nas kontaktirati putem obrasca za povratne informacije u nastavku. U sljedećem dijelu ovog vodiča ćemo pokriti upravljanje snapovima (naredbe, aliasi, usluge i snimke) u Linuxu.