Instalacija softverskih paketa na Linuxu putem Snapa donosi olakšanje u vidu izbegavanja zavisnosti i problema sa drugim aplikacijama. Snap paketi, prvobitno kreirani za Ubuntu, sada su dostupni za veliki broj Linux distribucija.
Šta su Snap Paketi?
U prošlosti, instaliranje aplikacija na Linux sistemima često je bilo frustrirajuće iskustvo. Korisnici su se suočavali sa problemima nedostajućih ili zastarelih biblioteka, što je dovodilo do sukoba među aplikacijama. Rešavanje jednog problema bi ponekad uzrokovalo drugi, stvarajući začarani krug.
Sistem upravljanja paketima poput apt, dnf i pacman, doneli su poboljšanja. Ipak, sukobi između različitih verzija istih aplikacija ili biblioteka i dalje su bili prisutni.
Sistemi za pakovanje i primenu aplikacija, kao što je Snappy, nude rešenje za ove probleme. Snappy, baziran na sistemu Click, sličan je Ubuntu Touch inicijativi. Drugi slični sistemi su AppImage i Flatpak.
Ovi sistemi enkapsuliraju aplikaciju, uključujući sve njene zavisnosti, u jednu kompresovanu datoteku. Aplikacija se pokreće unutar mini kontejnera, odvojeno od ostalih aplikacija. Na taj način, biblioteke i resursi su dostupni samo aplikaciji unutar paketa.
Budući da nisu instalirane na tradicionalni način, ove aplikacije ne stvaraju probleme sa drugim aplikacijama koje zahtevaju različite verzije resursa. Moguće je čak instalirati i pokretati aplikacije sa konfliktnim verzijama biblioteka, jer svaka aplikacija radi u svom izolovanom okruženju.
Kako se onda rukuje sa njima? Paket se preuzima, dekompresuje i montira kao SquashFS virtuelni sistem datoteka, stvarajući virtuelno okruženje za aplikaciju. Sve se odvija u pozadini, a korisnik dobija pristup instaliranoj aplikaciji.
Međutim, s obzirom da svaki paket sadrži sve potrebne resurse, datoteke paketa mogu biti prilično velike. Takođe, resursi poput MySQL ili Apache se mogu duplirati ukoliko su potrebni za više aplikacija. Svaka snap aplikacija nosi svoju kopiju potrebnih resursa.
Ovo je kompromis između jednostavnosti instalacije i izbegavanja problema sa sukobima resursa.
Instalacija `snapd`
Snappy je sastavni deo Ubuntu-a od verzije 16.04. Međutim, ukoliko koristite drugu distribuciju, kao što je Fedora 31, potrebno je instalirati snapd. Na Manjaro 18.04, snapd je bio instaliran ali je trebalo ga aktivirati.
Pored toga što je ime datoteka paketa, `snap` je takođe komanda za interakciju sa njima. U pozadini, `snapd` demon je paket koji se mora instalirati ukoliko nemate Snappy.
Da biste instalirali `snapd` na Fedoru, koristite sledeću komandu:
sudo dnf install snapd
Ako ga instalirate na Manjaru, koristite ove komande:
sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket
Komanda `snap version` prikazuje verziju `snap` klijenta, `snapd` demona i serijski broj softvera. Takođe, prikazaće ime i izdanje Linux distribucije, kao i verziju kernela.
Unesite sledeće:
snap version
Instalacija Snap Paketa
Proces instalacije je vrlo jednostavan. Koristite komandu `snap` za pretragu paketa, a zatim instalirajte željeni paket.
Za traženje i instalaciju GIMP editora slika, unesite:
snap find gimp
`snap` pretražuje i prikazuje rezultate pretrage za terminom „gimp“. Rezultati uključuju sve pakete koji odgovaraju ili sadrže ovaj termin.
Za instaliranje paketa, koristite vrednost iz kolone „Name“, kao što je prikazano ispod:
sudo snap install gimp
Tokom preuzimanja, procentualni napredak se povećava, a traka napredovanja se kreće preko leve strane terminala. Po završetku instalacije, pojavljuje se poruka koja potvrđuje da je paket instaliran.
Komanda `df` se koristi za proveru kapaciteta i upotrebe različitih sistema datoteka na Linux računaru. Ukoliko izlaz prosledimo komandi `grep` i tražimo „gimp“, dobijamo izdvojen unos za upravo instalirani paket.
Unesite sledeće:
df | grep gimp
Ovo pokazuje da je snap paket montiran kao sistem datoteka, u direktorijumu `/snap/gimp/252`. „252“ predstavlja broj izdanja ove verzije GIMP-a.
Sistem datoteka je `/dev/loop18`. Datoteke petlje se koriste za pristup običnim datotekama kao blok uređajima. Često se koriste za montiranje sistema datoteka u image diskova. U ovom slučaju, one montiraju SquashFS sistem datoteka unutar snap paketa. „18“ označava 18. `/dev/loop` datoteku uređaja koja se koristi na Linux sistemu.
Koristite `df` komandu za brzu proveru. Opcja `-t` (type) ograničava izlaz samo na SquashFS tipove datoteka.
Unesite sledeće:
df -t squashfs
Navedeni su montirani SquashFS sistemi datoteka. Datoteka uređaja `/dev/loop` obrađuje svaki od njih, a ima ih 18.
Svaki sistem datoteka je montiran u direktorijum unutar `/snap` direktorijuma. Međutim, ovo ne znači da je instalirano 18 snap paketa. Neke snap pakete Ubuntu distribucija instalira „out-of-the-box“, a mi smo upravo dodali još jedan.
Pored toga, `snapd` po instalaciji uključuje neke osnovne snap pakete kako bi zadovoljio potrebe drugih snap paketa.
Komanda `snap list` prikazuje instalirane snap pakete:
snap list
Izlaz je bio malo širok, pa je kraj liste prikazan ispod.
Evo cele liste:
Name Version Rev Tracking Publisher Notes core 16-2.43.3 8689 stable canonical* core core18 20200124 1668 stable canonical* base gimp 2.10.18 252 stable snapcrafters - gnome-3-26-1604 3.26.0.20191114 98 stable/… canonical* - gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 stable canonical* - gnome-calculator 3.34.1+git1.d34dc842 544 stable/… canonical* - gnome-characters v3.32.1+git3.b9120df 399 stable/… canonical* - gnome-logs 3.34.0 81 stable/… canonical* - gnome-system-monitor 3.32.1-3-g0ea89b4922 127 stable/… canonical* - gtk-common-themes 0.1-28-g1503258 1440 stable/… canonical* -
Vidimo da je instalirano 10 snap paketa, a ne 18. Međutim, ovih 10 paketa je dovelo do 18 SquashFS sistema datoteka. Kolone tabele su jasne, ali evo objašnjenja:
Name: Naziv instaliranog snap paketa.
Version: Broj verzije softvera u paketu.
Rev: Broj revizije snap paketa.
Tracking: Kanal koji ovaj paket prati za ažuriranja. Postoje četiri kanala:
Stable: Podrazumevani kanal. Sadrži najstabilnije pakete.
Candidate: Manje stabilan od „stable“, ali sadrži potpun softverski kod. Prolazi završno testiranje pre prelaska na „stable“.
Beta: Kanal ima kvalitet kasnog razvojnog ciklusa, ali nije garantovana stabilnost.
Edge: Za rane testere. Ne preporučuje se za produkciju. Oprez!
Publisher: Osoba, kompanija ili organizacija koja je objavila paket. Verifikovani izdavači imaju zelenu kvačicu (ako je podržano prikazivanje Unicode) ili zvezdicu pored imena.
Notes: Svi komentari ili dodatne informacije pojavljuju se ovde.
Snap Kanali
Opcija `info` pruža opis paketa.
snap info gtk-common-themes
Možemo videti koji kanal paket prati, kao i verziju softvera na svakom od četiri kanala. Najčešće je preporuka da se koristi „stable“ kanal.
Snap paket proverava četiri puta dnevno da li je dostupna novija verzija softvera na kanalu koji prati. Ukoliko želite da promenite kanal, koristite opciju `refresh` i `–channel`.
sudo snap refresh gtk-common-themes --channel=beta
Ukoliko je novija verzija softvera dostupna, ona bi se instalirala, ali u ovom slučaju nije. Snap paket sada prati beta kanal i automatski će preuzeti i ažurirati se čim bude nova beta verzija.
Opcija `–list` proverava da li su ažuriranja dostupna za instalirane snap pakete.
sudo snap refresh --list
Dobićete informaciju ukoliko neki od kanala koje prate snap paketi sadrži novije verzije softvera.
sudo snap refresh gtk-common-themes
Uklanjanje Snap Paketa
sudo snap remove gimp
Pregled Komandi
Korišćenje snap paketa je jednostavno, ali evo liste komandi koje mogu biti korisne:
Za pretragu paketa: `snap find package_name`
Za instalaciju paketa: `sudo snap install package_name`
Za prikaz svih instaliranih paketa: `snap list`
Za informacije o paketu: `snap info package_name`
Za promenu kanala za ažuriranje: `sudo snap refresh package_name –channel=channel_name`
Za prikaz dostupnih ažuriranja: `sudo snap refresh –list`
Za ručno ažuriranje paketa: `sudo snap refresh package_name`
Za deinstalaciju paketa: `sudo snap remove package_name`