Sådan arbejder du med Snap-pakker på Linux

Når du installerer Linux-softwarepakker med snap, kan du sige farvel til afhængighedshelvede og ødelægge andre fungerende applikationer. Snap-pakker blev oprindeligt designet til Ubuntu, men de er nu tilgængelige på en række Linux-distributioner.

Hvad er Snap-pakker?

Tidligere var installation af programmer på Linux en potentielt frustrerende oplevelse. Du ville kun installere noget for at finde ud af, at et bestemt bibliotek eller anden afhængighed manglede eller var forældet. Du ville derefter jagte den manglende ressource og installere den, kun for at finde en anden applikation, afhængig af den version af biblioteket, du lige har erstattet. Ret en, bryd en, gentag.

Dette er blevet bedre med bedre pakkehåndteringssystemer, som f.eks passende, dnf, og pacman. Du står dog stadig over for en kamp, ​​hvis du skal have forskellige versioner af den samme applikation installeret. Eller hvis du bruger to programmer, der støder sammen, fordi de er bundet til specifikke – men forskellige – versioner af et bibliotek.

En løsning på disse problemer er applikationspakning og implementeringssystemer. Snappy er en af ​​de mere populære af disse. Det er baseret på et pakke- og implementeringssystem kaldet Click, som vender tilbage til Ubuntu Touch initiativ. AppImage og Flad pakke er andre du måske er stødt på.

Disse systemer indkapsler applikationen sammen med eventuelle afhængigheder og andre krav i en enkelt komprimeret fil. Applikationen kører så i en slags mini-container. Det er i sandkasse og adskilt fra andre applikationer. De biblioteker og andre ressourcer, som applikationen er pakket med eller kræver, er kun tilgængelige for den alene.

De er ikke installeret i traditionel forstand, så de forårsager ikke problemer med andre programmer, der kræver forskellige versioner af de samme ressourcer. Du kan endda installere og køre applikationer, der har brug for modstridende biblioteksversioner, fordi hver applikation er i sin egen sandkasse.

Hvis de ikke er installeret på den sædvanlige måde, hvordan håndteres de så? Nå, den enkelte pakkefil downloades, dekomprimeres og monteres som en SquashFSvirtuelt filsystem. Det præsenteres derefter for dig som et virtuelt miljø. Alt dette foregår bag kulisserne. Alt du ved er, at du har installeret et program, og nu har du adgang til det.

  Sådan vises man-sider i farver på Linux

Fordi hver pakkefil skal indeholde hver ressource, som applikationen har brug for, kan pakkefilerne selvfølgelig være store. Det er også nemt at duplikere en ressource, du normalt kun ville installere én gang, som f.eks MySQL eller Apache. Hvis to forskellige snap-applikationer kræver de samme ressourcer, medbringer de hver deres kopi.

Dette er dog afvejningen for enkelheden af ​​installationen og fjernelse af ressource-konflikt hovedpine.

Installerer snapd

Snappy blev introduceret med Ubuntu 16.04, så hvis du kører den version eller nyere, er du allerede godt i gang. På vores maskine blev Snappy installeret på Manjaro 18.04, men vi var nødt til at installere det på Fedora 31.

snap er både navnet på pakkefilerne og den kommando, du bruger til at interagere med dem. Bag kulisserne er snapd-dæmonen også navnet på den pakke, du skal installere, hvis du ikke allerede har Snappy på din computer.

For at installere snapd på Fedora skriv følgende kommando:

sudo dnf install snapd

Det

Hvis du skal installere det på Manjaro, skal du bruge disse kommandoer:

sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket

Du kan bruge snap version-kommandoen til at se versionen af ​​snap-klienten, snapd-dæmonen og softwarens serienummer. Navnet og udgivelsen af ​​din Linux-distribution og kerneversionen vil også blive vist for dig.

Indtast følgende:

snap version

Det

Installation af snap-pakker

Det er en ret ligetil proces at installere en snap-pakke. Du kan bruge snap til at søge efter snap-pakker og derefter installere den, du ønsker.

Vi skriver følgende for at lede efter og installere gimp-billededitoren:

snap find gimp

Det

snap søger efter match til søgesporet “gimp” og returnerer dets resultater. Den finder alt, der matcher eller nævner søgetermen.

For at installere en af ​​pakkerne bruger vi værdien fra kolonnen Navn, som vist nedenfor:

sudo snap install gimp

Det

Efterhånden som den downloades, stiger den fuldførte procentdel, og en statuslinje kryber på tværs fra venstre i terminalvinduet. Når installationen er færdig, vises en meddelelse (som vist nedenfor), der fortæller dig, at pakken blev installeret.

EN

Du kan bruge kommandoen df til kontrollere kapacitet og brug af de forskellige filsystemer, der er konfigureret på din Linux-computer. Hvis vi overfører dets output til grep-kommandoen og søger efter “gimp”, vi isolere indgangen til pakken vi har lige installeret.

  Sådan bruges pushd og popd på Linux

Vi skriver følgende:

df | grep gimp

Det

Dette viser os, at snap-pakken blev monteret, som om det var et filsystem. Monteringspunktet er i snap-mappen her: /snap/gimp/252. “252” er udgivelsesnummeret for denne version af gimp.

Filsystemet er opført som: /dev/loop18. Loop-enhedsfiler bruges til at gøre almindelige filer tilgængelige som blokenheder. De bruges typisk til at montere filsystemerne i diskbilleder. I dette tilfælde monterer de SquashFS-filsystemet i snap-pakken. “18” betyder, at dette er den 18. /dev/loop enhedsfil i brug på denne Linux-computer.

Vi kan bruge kommandoen df til hurtigt at kontrollere dette. Vi bruger muligheden – t (type) til at begrænse outputtet til kun SquashFS-filtyper.

Vi skriver følgende:

df -t squashfs

Det

De monterede SquashFS-filsystemer er angivet. En /dev/loop enhedsfil håndterer hver enkelt, og der er 18 af dem.

Hvert filsystem er monteret på en mappe i /snap-mappen. Dette betyder dog ikke, at der er 18 forskellige snap-pakker installeret på denne computer. Dette er en Ubuntu-distribution, så nogle snap-pakker er installeret lige ud af kassen, og vi har lige installeret en anden.

Derudover, når du installerer snapd, installerer den nogle kerne-snap-pakker for at håndtere behovene for andre snap-pakker.

Vi kan bruge snap list-kommandoen, som vist nedenfor, til at liste de installerede snap-pakker:

snap list

Outputtet var lidt bredt, så slutningen af ​​listerne er vist nedenfor.

Her er hele listen:

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

Som du kan se, er der 10 snap-pakker installeret, ikke 18. Disse 10 pakker har dog givet anledning til de 18 SquashFS-filsystemer. Tabelkolonnerne er ret selvforklarende, men her er en afklaring:

Navn: Navnet på den snap-pakke, der blev installeret.
Version: Softwarens versionsnummer i snap-pakken.
Rev: Revisionsnummeret på snap-pakken.
Sporing: Kanalen, som denne snap-pakke overvåger for opdateringer. Der er fire:
Stabil: Standardkanalen. Som navnet siger, indeholder denne kanal de mest stabile pakker.
Kandidat: Denne kanal er mindre stabil, men meget tæt på den, fordi den indeholder software på udgivelseskandidatniveau, som er kodefuldstændig. Den gennemgår den endelige test, før den flyttes til den stabile kanal.
Beta: Denne kanal er af sen udviklingscyklus kvalitet, men det er ikke garanteret at være stabil.
Edge: Til tidlige build-testere. Du bør ikke bruge denne kanal til vigtigt arbejde eller på en produktionscomputer. Her er drager!

  6 bedste KDE Plasma 5-widgets til dit Linux-skrivebord

Udgiver: Den person, virksomhed eller organisation, der udgav snap-pakken. Hvis det var en verificeret udgiver (og dit terminalvindue understøtter Unicode), vil du se et grønt flueben ud for navnet på udgiveren. Hvis det ikke kan vise et flueben, vil du se en stjerne
.

Bemærkninger: Eventuelle kommentarer eller yderligere oplysninger vil blive vist her.

Snap-kanalerne

Du kan bruge infomuligheden til at få en beskrivelse af en snappakke.

snap info gtk-common-themes

For at gøre det skriver vi følgende:

Det

Vi kan se, hvilken kanal pakken sporer, og versionen af ​​softwaren i snap-pakkerne i hver af de fire kanaler. I de fleste tilfælde bør du blive på den stabile kanal.

En snap-pakke tjekker fire gange om dagen for at se, om en nyere version af softwaren er tilgængelig fra den kanal, den ser eller “sporer”. Hvis du vil ændre den kanal, en snap-pakke sporer, kan du bruge opdaterings- og -kanalindstillingerne.

sudo snap refresh gtk-common-themes --channel=beta

For at gøre det skriver vi følgende:

Det

Hvis en nyere version af softwaren var tilgængelig, ville den blive installeret, men det var ikke tilfældet her. Snap-pakken sporer dog nu betakanalen. Så snart en ny betaversion er udgivet, downloades og opgraderes den automatisk.

Du kan bruge –list-indstillingen til at kontrollere, om opdateringer er tilgængelige for nogen af ​​snap-pakkerne, der er installeret på din computer.

sudo snap refresh --list

For at gøre det skriver vi følgende:

Det

Du får at vide, hvis nogen af ​​de kanaler, snap-pakkerne på din computer sporer, indeholder nyere softwareversioner.

sudo snap refresh gtk-common-themes

Hvis en nyere version af softwaren er tilgængelig, kan du bruge opdateringsindstillingen, som vist nedenfor, til manuelt at gennemtvinge en opdatering:

Det

Fjernelse af en snap-pakke

sudo snap remove gimp

For at afinstallere en snap-pakke kan du bruge muligheden for fjernelse, som vist nedenfor:

Det

Det snap-snydeark

Det er ret simpelt at bruge snap-pakker, men vi har samlet en liste over nogle kommandoer, der vil hjælpe dig:
For at søge efter en pakke: snap find pakkenavn
For at installere en pakke: sudo snap install pakkenavn
For at se alle installerede pakker: snapliste
For at få information om en enkelt pakke: snap info pakkenavn
For at ændre den kanal, en pakke sporer for opdateringer: sudo snap refresh pakkenavn –channel=kanalnavn
For at se, om opdateringer er klar til nogen installerede pakker: sudo snap refresh –list
Sådan opdateres en pakke manuelt: sudo snap refresh pakkenavn

For at afinstallere en pakke: sudo snap remove package_name