Zoeken op website

Een beginnershandleiding voor Snaps in Linux - Deel 1


De afgelopen jaren is de Linux-gemeenschap gezegend met een aantal opmerkelijke vooruitgang op het gebied van pakketbeheer op Linux-systemen, vooral als het gaat om het verpakken en distribueren van universele of cross-distributiesoftware. Eén van zulke verbeteringen is het Snap pakketformaat, ontwikkeld door Canonical, de makers van het populaire Ubuntu Linux.

Wat zijn Snap-pakketten?

Snaps zijn cross-distributie, afhankelijkheidsvrije en eenvoudig te installeren applicaties, verpakt met al hun afhankelijkheden, om op alle grote Linux-distributies te draaien. Vanuit één enkele build draait een module (applicatie) op alle ondersteunde Linux-distributies op desktop, in de cloud en IoT. Ondersteunde distributies zijn onder meer Ubuntu, Debian, Fedora, Arch Linux, Manjaro en CentOS/RHEL.

Snaps zijn veilig: ze zijn beperkt en in een sandbox geplaatst, zodat ze het hele systeem niet in gevaar brengen. Ze vallen onder verschillende opsluitingsniveaus (wat de mate van isolatie is van het basissysteem en van elkaar). Meer in het bijzonder heeft elke module een interface die zorgvuldig is geselecteerd door de maker van de module, op basis van de vereisten van de module, om toegang te bieden tot specifieke systeembronnen buiten hun beperkingen, zoals netwerktoegang, desktoptoegang en meer.

Een ander belangrijk concept in het snap ecosysteem zijn Kanalen. Een kanaal bepaalt welke release van een module wordt geïnstalleerd en gevolgd op updates en bestaat uit en is onderverdeeld in tracks, risiconiveaus en vertakkingen.

De belangrijkste componenten van het snap-pakketbeheersysteem zijn:

  • snapd – de achtergrondservice die je snaps op een Linux-systeem beheert en onderhoudt.
  • snap – zowel het applicatiepakketformaat als de opdrachtregelinterface die wordt gebruikt om snaps te installeren en te verwijderen en om vele andere dingen in het snap-ecosysteem te doen.
  • snapcraft – het raamwerk en de krachtige opdrachtregeltool voor het maken van snaps.
  • snap store – een plaats waar ontwikkelaars hun snaps kunnen delen en waar Linux-gebruikers deze kunnen zoeken en installeren.

Bovendien worden snaps ook automatisch bijgewerkt. U kunt configureren wanneer en hoe updates plaatsvinden. Standaard controleert de snapd daemon maximaal vier keer per dag op updates: elke updatecontrole wordt een refresh genoemd. U kunt ook handmatig een vernieuwing starten.

Hoe Snapd onder Linux te installeren

Zoals hierboven beschreven is de snapd daemon de achtergrondservice die uw snap-omgeving op een Linux-systeem beheert en onderhoudt, door het opsluitingsbeleid te implementeren en de interfaces te controleren waarmee snaps kunnen worden toegang krijgen tot specifieke systeembronnen. Het biedt ook de opdracht snap en dient vele andere doeleinden.

Om het snapd pakket op uw systeem te installeren, voert u de juiste opdracht uit voor uw Linux-distributie.

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

Nadat u snapd op uw systeem hebt geïnstalleerd, schakelt u de systemd-eenheid in die de belangrijkste snap-communicatiesocket beheert, met behulp van de systemctl-opdrachten als volgt.

Op Ubuntu en zijn derivaten zou dit automatisch moeten worden geactiveerd door het pakketinstallatieprogramma.

sudo systemctl enable --now snapd.socket

Houd er rekening mee dat u de opdracht snap niet kunt uitvoeren als snapd.socket niet actief is. Voer de volgende opdrachten uit om te controleren of deze actief is en is ingeschakeld om automatisch te starten bij het opstarten van het systeem.

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

Schakel vervolgens de ondersteuning voor klassieke snap in door als volgt een symbolische link te maken tussen /var/lib/snapd/snap en /snap.

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

Om te controleren welke versie van snapd en het snap-opdrachtregelprogramma op uw systeem zijn geïnstalleerd, voert u de volgende opdracht uit.

snap version 

Hoe Snaps onder Linux te installeren

Met de opdracht snap kunt u snaps installeren, configureren, vernieuwen en verwijderen, en communiceren met het grotere snap-ecosysteem.

Voordat u een snap installeert, kunt u controleren of deze bestaat in de snapwinkel. Als de applicatie bijvoorbeeld in de categorie “chatservers” of “mediaspelers“ thuishoort, kunt u deze opdrachten uitvoeren om ernaar te zoeken, waardoor de winkel wordt doorzocht voor beschikbare pakketten in het stabiele kanaal.

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

Om gedetailleerde informatie over een snap weer te geven, bijvoorbeeld rocketchat-server, kunt u de naam of het pad ervan opgeven. Merk op dat er zowel in de snapwinkel als in de geïnstalleerde snaps naar namen wordt gezocht.

snap info rocketchat-server

Om een snap op uw systeem te installeren, bijvoorbeeld rocketchat-server, voert u de volgende opdracht uit. Als er geen opties zijn, wordt er een snap geïnstalleerd die het “stabiel” kanaal volgt, met strikte veiligheidsbeperkingen.

sudo snap install rocketchat-server

Je kunt ervoor kiezen om om de een of andere reden te installeren vanaf een ander kanaal: edge, bèta of candidate, met behulp van de --edge, --beta of --candidate opties respectievelijk. Of gebruik de optie --channel en specificeer het kanaal waarvan u wilt installeren.

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

Beheer Snaps in Linux

In deze sectie zullen we leren hoe we snaps in een Linux-systeem kunnen beheren.

Geïnstalleerde snaps bekijken

Gebruik de volgende opdracht om een samenvatting weer te geven van snaps die op uw systeem zijn geïnstalleerd.

snap list

Om de huidige revisie van een gebruikte snap weer te geven, specificeert u de naam ervan. Je kunt ook alle beschikbare revisies weergeven door de optie --all toe te voegen.

snap list mailspring
OR
snap list --all mailspring

Snaps bijwerken en terugzetten

U kunt als volgt een opgegeven snap bijwerken, of alle snaps in het systeem als er geen zijn opgegeven. De opdracht refresh controleert het kanaal dat door de module wordt gevolgd en downloadt en installeert een nieuwere versie van de module als deze beschikbaar is.

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

Nadat u een app naar een nieuwe versie hebt bijgewerkt, kunt u terugkeren naar een eerder gebruikte versie met de opdracht revert. Houd er rekening mee dat de gegevens die aan de software zijn gekoppeld, ook worden teruggedraaid.

sudo snap revert mailspring

Wanneer u nu alle revisies van mailspring controleert, is de laatste revisie uitgeschakeld, een eerder gebruikte revisie is nu actief.

snap list --all mailspring

Snaps in-/uitschakelen en verwijderen

Je kunt een snap uitschakelen als je deze niet wilt gebruiken. Wanneer uitgeschakeld, zijn de binaire bestanden en services in een handomdraai niet langer beschikbaar, maar alle gegevens zullen er nog steeds zijn.

sudo snap disable mailspring

Als u de module opnieuw wilt gebruiken, kunt u deze weer inschakelen.

sudo snap enable mailspring

Om een module volledig van uw systeem te verwijderen gebruikt u de opdracht remove. Standaard worden alle revisies van een module verwijderd.

sudo snap remove mailspring

Om een specifieke revisie te verwijderen, gebruikt u de optie --revision als volgt.

sudo snap remove  --revision=482 mailspring

Het is belangrijk op te merken dat wanneer u een snap verwijdert, de gegevens ervan (zoals interne gebruikers-, systeem- en configuratiegegevens) worden opgeslagen door snapd (versie 2.39 en hoger) als momentopname en gedurende 31 dagen op het systeem opgeslagen. Als u de module binnen de 31 dagen opnieuw installeert, kunt u de gegevens herstellen.

Conclusie

Snaps worden steeds populairder binnen de Linux-gemeenschap, omdat ze een gemakkelijke manier bieden om software op elke Linux-distributie te installeren. In deze handleiding hebben we laten zien hoe je snaps in Linux kunt installeren en ermee kunt werken. We hebben besproken hoe je snapd installeert, snaps installeert, geïnstalleerde snaps bekijkt, snaps bijwerkt en terugzet, en snaps in-/uitschakelt en verwijdert.

U kunt vragen stellen of ons bereiken via het onderstaande feedbackformulier. In het volgende deel van deze handleiding bespreken we het beheer van snaps (opdrachten, aliassen, services en snapshots) in Linux.