En begyndervejledning til snap i Linux - del 1


I de sidste par år er Linux-samfundet blevet velsignet med nogle bemærkelsesværdige fremskridt inden for pakkehåndtering på Linux-systemer, især når det kommer til universel eller tværdistributionssoftwareemballage og distribution. En af disse fremskridt er Snap-pakkeformatet udviklet af Canonical, producenterne af den populære Ubuntu Linux.

Snaps er krydsfordeling, afhængighedsfri og nemme at installere applikationer pakket med alle deres afhængigheder til at køre på alle større Linux-distributioner. Fra en enkelt build kører et snap (applikation) på alle understøttede Linux-distributioner på desktop, i skyen og IoT. Understøttede distributioner inkluderer Ubuntu, Debian, Fedora, Arch Linux, Manjaro og CentOS/RHEL.

Snaps er sikre - de er begrænsede og sandkasser, så de ikke kompromitterer hele systemet. De kører under forskellige indespærringsniveauer (hvilket er graden af isolation fra basissystemet og hinanden). Mere især har hvert snap en grænseflade, der er nøje udvalgt af snap-skaberen, baseret på snap-kravene, der giver adgang til specifikke systemressourcer uden for deres indespærring, såsom netværksadgang, desktopadgang og mere.

Et andet vigtigt koncept i snap-økosystemet er kanaler. En kanal bestemmer, hvilken frigivelse af et snap der er installeret og spores til opdateringer, og den består af og er opdelt i spor, risikoniveauer og grene.

Hovedkomponenterne i snap-pakkehåndteringssystemet er:

  • snapd - baggrundstjenesten, der administrerer og vedligeholder dine snap på et Linux-system.
  • snap - både applikationspakkeformatet og kommandolinjegrænseværktøjet, der bruges til at installere og fjerne snaps og gøre mange andre ting i snap-økosystemet.
  • snapcraft - rammen og det kraftfulde kommandolinjeværktøj til opbygning af snaps.
  • snap store - et sted, hvor udviklere kan dele deres snaps, og Linux-brugere søger og installerer dem.

Desuden opdateres snaps også automatisk. Du kan konfigurere, hvornår og hvordan opdateringer opstår. Som standard kontrollerer snapd-dæmonen for opdateringer op til fire gange om dagen: hver opdateringskontrol kaldes en opdatering. Du kan også starte en opdatering manuelt.

Sådan installeres Snapd i Linux

Som beskrevet ovenfor er snapd-dæmonen baggrundstjenesten, der administrerer og vedligeholder dit snapmiljø på et Linux-system ved at implementere indespærringspolitikkerne og kontrollere de grænseflader, der giver snaps adgang til specifikke systemressourcer. Det giver også snap-kommandoen og tjener mange andre formål.

For at installere snapd-pakken på dit system skal du køre den relevante kommando til din Linux-distribution.

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

Efter installation af snapd på dit system skal du aktivere systemd-enheden, der administrerer hoved snapkommunikationsstikket ved hjælp af systemctl-kommandoerne som følger.

På Ubuntu og dets derivater skal dette udløses automatisk af pakkeinstallatøren.

$ sudo systemctl enable --now snapd.socket

Bemærk, at du ikke kan køre snap-kommandoen, hvis snapd.socket ikke kører. Kør følgende kommandoer for at kontrollere, om den er aktiv og er aktiveret til automatisk at starte ved systemstart.

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

Derefter skal du aktivere klassisk snap-understøttelse ved at oprette et symbolsk link mellem/var/lib/snapd/snap og/snap som følger.

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

For at kontrollere versionen af snapd og snap kommandolinjeværktøj installeret på dit system skal du køre følgende kommando.

$ snap version 

Sådan installeres Snaps i Linux

Snap-kommandoen giver dig mulighed for at installere, konfigurere, opdatere og fjerne snaps og interagere med det større snap-økosystem.

Før du installerer et snap, kan du kontrollere, om det findes i snap-butikken. For eksempel, hvis applikationen hører til i kategorien "chat-servere" eller "medieafspillere", kan du køre disse kommandoer for at søge efter den, som spørger butikken om tilgængelige pakker i den stabile kanal.

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

For at få vist detaljerede oplysninger om et snap, for eksempel rocketchat-server, kan du angive dets navn eller sti. Bemærk, at der søges efter navne både i snap-butikken og i de installerede snaps.

$ snap info rocketchat-server

For at installere et snap på dit system, f.eks. Rocketchat-server, skal du køre følgende kommando. Hvis der ikke findes nogen muligheder, installeres et snap, der sporer den "stabile" kanal med streng sikkerhedsindeslutning.

$ sudo snap install rocketchat-server

Du kan vælge at installere fra en anden kanal: kant, beta eller kandidat af den ene eller anden grund ved hjælp af --edge , --beta eller < kode> - kandidat valgmuligheder. Eller brug indstillingen --channel og angiv den kanal, du vil installere fra.

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

Administrer Snaps i Linux

I dette afsnit vil vi lære at håndtere snaps i Linux-system.

Brug følgende kommando for at få vist en oversigt over snaps, der er installeret på dit system.

$ snap list

For at liste den aktuelle revision af et snap, der bruges, skal du angive dets navn. Du kan også liste alle tilgængelige versioner ved at tilføje indstillingen --all .

$ snap list mailspring
OR
$ snap list --all mailspring

Du kan opdatere et bestemt snap eller alle snap i systemet, hvis ingen er angivet som følger. Opdateringskommandoen kontrollerer kanalen, der spores af snap, og den downloader og installerer en nyere version af snap, hvis den er tilgængelig.

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

Efter opdatering af en app til en ny version, kan du vende tilbage til en tidligere brugt version ved hjælp af kommandoen revert. Bemærk, at de data, der er knyttet til softwaren, også tilbageføres.

$ sudo snap revert mailspring

Nu når du tjekker alle revisioner af mailspring, er den seneste revision deaktiveret, en tidligere brugt revision er nu aktiv.

$ snap list --all mailspring

Du kan deaktivere et snap, hvis du ikke vil bruge det. Når det er deaktiveret, er snap-binære binære filer og tjenester ikke længere tilgængelige, men alle data vil stadig være der.

$ sudo snap disable mailspring

Hvis du har brug for snap igen, kan du aktivere det igen.

$ sudo snap enable mailspring

For at fjerne et snap helt fra dit system skal du bruge kommandoen remove. Som standard fjernes alle ændringer af et snap.

$ sudo snap remove mailspring

For at fjerne en bestemt revision skal du bruge indstillingen --revision som følger.

$ sudo snap remove  --revision=482 mailspring

Det er nøglen at bemærke, at når du fjerner et snap, gemmes dets data (såsom intern bruger-, system- og konfigurationsdata) af snapd (version 2.39 og højere) som et snapshot og gemmes på systemet i 31 dage. Hvis du geninstallerer snap inden for de 31 dage, kan du gendanne dataene.

Snaps bliver mere populære inden for Linux-samfundet, da de giver en nem måde at installere software på enhver Linux-distribution. I denne vejledning har vi vist, hvordan du installerer og arbejder med snaps i Linux. Vi dækkede, hvordan man installerer snapd, installerer snaps, ser installerede snaps, opdaterer og gendanner snap, og deaktiverer/aktiverer og fjerner snap.

Du kan stille spørgsmål eller nå os via feedbackformularen nedenfor. I den næste del af denne vejledning dækker vi styring af snaps (kommandoer, aliaser, tjenester og snapshots) i Linux.