Emballasje

Sammenligning Snap vs Flatpak vs AppImage

Sammenligning Snap vs Flatpak vs AppImage
Nye emballasjeformater som Snap, Flatpak og AppImage gir agnostiske distribusjonspakker som fungerer på de fleste Linux-distribusjoner. Dette løser emballasjeproblemer for apputviklere som ønsker å distribuere appene sine på flere Linux-distribusjoner. Nå kan de fokusere på en bygning som fungerer overalt i stedet for å gå gjennom forskjellige emballasjestandarder.

Denne artikkelen vil liste opp de viktigste forskjellene mellom disse tre emballasjeformatene fra sluttbrukernes perspektiv. Forskjeller i emballasjearkitektur og enkel emballasje fra utvikleres synspunkt vil ikke bli dekket her.

Tabellen nedenfor oppsummerer de viktigste forskjellene mellom Snap, Flatpak og AppImage filformater. De fleste av dem forklarer seg selv, andre punkter er forklart under sammenligningstabellen.

Snap Flatpak AppImage
Android Like Permission Controls Toggles (GUI og CLI) Ja Ja Nei
Sandboxing-støtte Ja Ja Ja
Sandkasse obligatorisk Ja Ja Nei
Innfødt tema støtte Ja (med forbehold) Ja (med forbehold) Ja (med forbehold)
Støtte for medfølgende biblioteker Ja Ja Ja
Appportabilitet Ja (med forbehold) Ja (med forbehold) Ja
Fullt inneholdt enkel kjørbar støtte (ligner på .exe-filer i Windows) Nei Nei Ja
Online App Store Ja Ja Ja
Plugins for Desktop App Store-programvare Ja Ja Nei
Multi-versjon Parallel Apps Support Ja Ja Ja
Automatiske oppdateringer Ja Ja Ja (med forbehold)
Chrome OS-støtte (gjennom Crostini-containere) Ja Ja Ja
Appstørrelse Varierer, men høyere enn AppImage Varierer, men høyere enn AppImage Lavest
Antall apper tilgjengelig i App Store Høyeste Lavest Et sted imellom

Tillatelseskontroller for brukere

Snap gir både grafiske og kommandolinjegrensesnitt for brukerstyrte tillatelser. Du kan bruke den forhåndsinstallerte "Ubuntu Software" -appen til å administrere tillatelsene til en snap-app.

For å se tillatelser for en snap-app ved hjelp av kommandolinjegrensesnittet, kjør kommandoen nedenfor:

$ snap-tilkoblinger krom

Erstatt “krom” med navnet på snap-appen din.

For å se en liste over alle installerte snap-apper, kjør kommandoen nedenfor:

$ snap-liste

For å gi kamera tillatelse til krom snap, bruk kommandoen nedenfor:

$ snap connect chromium: kamera

For å tilbakekalle kameratillatelsen, kjør kommandoen nedenfor:

$ snap frakoble krom: kamera

Egnede kommandoer for tillatelsesadministrasjon finner du i kolonnen "Plug" (vist i skjermbildet ovenfor).

Flatpak gir også et grensesnitt for å gi og tilbakekalle tillatelser. Du kan bruke GNOME Software-appen (krever GNOME 3.32.x) for å administrere tillatelser ved hjelp av en grafisk metode. For å se tillatelser for en flatpak-app, kjør kommandoen nedenfor:

$ flatpak info - show-permissions org.kde.Plattform

Erstatt “org.kde.Platform ”med navnet på Flatpak-appen din.

For å se en liste over alle flatpak-apper installert på systemet ditt, kjør kommandoen nedenfor:

$ flatpak-liste

For å endre tillatelsene til en flatpak-app, må du endre verdiene til variablene som vises i skjermbildet ovenfor. For eksempel vil kommandoen nedenfor gjøre hele filsystemet tilgjengelig for en flappak-app:

$ sudo flatpak overstyring org.kde.Plattform --filsystem = vert

AppImage støtter ikke detaljerte tillatelseskontroller per nå, men utviklere har antydet at tillatelseskontroller for Android-stil kan implementeres i fremtiden.

Sandboksing

Snap, Flatpak og AppImage støtter sandkasserte appmiljøer ut av esken. En sandkasse er et miljø (eller container / filsystem / arkiv) som er helt isolert og fjernt fra vertssystemet. Enhver interaksjon med vertssystemet gjøres ved hjelp av begrensede API- og tillatelseskontroller. Noen av disse tillatelsene krever eksplisitt opt-in av brukere, eller kan deaktiveres helt av sluttbrukere. En sandkasseapp er sikker enn noen annen app som har full tilgang til vertssystemet. Alle Android-apper kjøres i en sandkasse, og disse tre emballasjeformatene fungerer på samme ide.

Innfødt tema støtte

Alle tre emballasjeformatene støtter naturlig utseende og følelse for GTK- og Qt-apper, om enn med noen begrensninger. For eksempel krever Snap og Flatpak at systemtemaer skal pakkes i sine respektive formater. Hvis du bruker tredjeparts temaer og ikonpakker, får du kanskje ikke riktige tema-, markør- og appikoner. Integrasjonen har forbedret overtid, men de kommer til kort i forhold til apper som er installert fra den offisielle pakkelederen for en distribusjon.

Appportabilitet

En AppImage-app er en enkelt kjørbar fil (ligner på Windows .exe-filer). Du kan enkelt dele den mellom systemer eller laste opp til skyen. Snap- og Flatpak-apper kan gjøres bærbare ved å inkludere selve appen, samt barneregistre som appen er avhengig av. Prosessen er imidlertid ikke like enkel som AppImage og krever bruk av flere kommandoer for å oppnå de samme resultatene.

Automatiske oppdateringer

Snap- og Flatpak-apper installeres fra sentraliserte applikasjonsregister, og apper kan oppdateres automatisk uten brukerinnblanding. AppImage mangler en robust automatisk oppdateringsmekanisme. Brukere må laste ned ny AppImage binær manuelt og erstatte eksisterende for å installere oppdateringer. App-vedlikeholdere av app inkluderer noen ganger sin egen oppdateringsmekanisme som med jevne mellomrom sjekker tilgjengeligheten av oppdateringer på serverne eller krever brukerintervensjon. Nylig ga AppImage-utviklere et verktøy for å oppdatere eksisterende binærfiler ved å tilby deltaoppdateringer. Imidlertid krever det fortsatt nedlasting av oppdateringsverktøyet og manuelt bruk av det med en eksisterende AppImage-binær. Det er ingen håndfri oppdateringsmekanisme tilgjengelig for AppImage ennå.

Appstørrelse

AppImage har den laveste appstørrelsen, sannsynligvis fordi den serverer binærfiler i komprimert format. Snap- og Flatpak-appstørrelser varierer veldig fra app til app, og det er vanskelig å fastslå hvilken som gir lavere installasjonsstørrelse. Bare for referanse var Inkscape AppImage i skrivende stund rundt 98 MB, Snap var rundt 183 MB og Flatpak var rundt 109 MB.

Konklusjon

Universelle apppakker er en vinn-vinn-situasjon for både utviklere og sluttbrukere. Disse emballasjeformatene tillater mye raskere levering av sikre apper. De åpner også dører for utviklere som har holdt seg unna Linux på grunn av forskjellige emballasjestandarder som brukes i forskjellige distribusjoner. Det er noen problemer som må strykes ut i disse tre emballasjeformatene. Imidlertid er de alle under aktiv utvikling, og disse problemene blir løst på overtid. Universelle kryssdistribusjonspakker er fremtiden og adopsjonen vil øke. Sakte, men jevnt, kan distribusjoner flytte til Snap, Flatpak eller AppImage builds i fremtiden, bortsett fra kjernebiblioteker og viktige pakker som er nødvendige for at operativsystemet skal fungere.

Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...
Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...