Sammenligning Snap vs Flatpak vs Appimage

Sammenligning Snap vs Flatpak vs Appimage
Nye emballasjeformater som Snap, Flatpak og Appimage gir distribusjonsagnostiske pakker som fungerer på de fleste Linux -distribusjoner. Dette løser emballasjeproblemer av apputviklere som ønsker å distribuere appene sine på flere Linux -distribusjoner. Nå kan de fokusere på ett bygg som fungerer overalt i stedet for å gå gjennom forskjellige emballasjestandarder.

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

Tabellen nedenfor oppsummerer hovedforskjellene mellom SNAP, Flatpak og Appimage File -formater. De fleste av dem er selvforklarende, andre punkter er blitt forklart under sammenligningstabellen.

Snap Flatpak Appimage
Android som tillatelseskontrollerer veksler (GUI og CLI) Ja Ja Nei
Sandboksestøtte Ja Ja Ja
Sandboksing obligatorisk Ja Ja Nei
Innfødt temastøtte Ja (med advarsler) Ja (med advarsler) Ja (med advarsler)
Støtte for medfølgende biblioteker Ja Ja Ja
Appportabilitet Ja (med advarsler) Ja (med advarsler) Ja
Helt inneholdt enkelt 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 parallelle appstøtte Ja Ja Ja
Automatiske oppdateringer Ja Ja Ja (med advarsler)
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 som er tilgjengelige i App Store Høyest Lavest Et sted derimellom

Tillatelseskontroller for brukere

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

For å se tillatelser av en Snap -app ved hjelp av Command Line -grensesnittet, kjør kommandoen nedenfor:

$ Snap Connections krom

Erstatt "krom" med navnet på snap -appen din.

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

$ Snap List

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

$ Snap Connect Chromium: Camera

For å tilbakekalle kameratillatelsen, kjør kommandoen nedenfor:

$ snap frakobling krom: kamera

Passende kommandoer for tillatelsesstyring finner du i "Plug" -kolonnen (vist på skjermdumpen 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 av en Flatpak -app, kjør kommandoen nedenfor:

$ Flatpak Info-Show-Gjennomføring ORG.kde.Plattform

Erstatt “org.kde.Plattform ”med navnet på flatpak -appen din.

Hvis du vil se en liste over alle flatpak -apper som er installert på systemet ditt, kjører kommandoen nedenfor:

$ Flatpak -listen

For å endre tillatelsene til en flatpak -app, må du endre verdiene til variabler vist på skjermdumpen ovenfor. For eksempel vil kommandoen nedenfor gjøre hele filsystem tilgjengelig for en Flappak -app:

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

Appimage støtter ikke granulær tillatelseskontroller per nå, men utviklere har antydet at android -stiltillatelsekontroller kan implementeres i fremtiden.

Sandkasse

Snap, Flatpak og Appimage støtter sandkassede appmiljøer ut av boksen. En sandkasse er et miljø (eller beholder / filsystem / arkiv) som er fullstendig isolert og reservert fra vertssystemet. Eventuelt samhandling med vertssystemet gjøres ved bruk av begrensede API- og tillatelseskontroller. Noen av disse tillatelsene krever eksplisitt opt-in av brukere eller kan deaktiveres helt av sluttbrukere. En sandbokset app 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å lignende idé.

Innfødt temastøtte

Alle tre emballasjeformatene støtter innfødt utseende og følelse for GTK- og QT -apper, om enn med noen begrensninger. For eksempel krever Snap og Flatpak systemtemaer som skal pakkes i sine respektive formater. Hvis du bruker tredjeparts temaer og ikoner, kan det hende du ikke får riktig tema, markør og appikoner. Integrasjonen har forbedret overtid, men de kommer litt til kort sammenlignet med apper installert fra offisiell pakkeansvarlig for en distribusjon.

Appportabilitet

En appimage -app er en enkelt kjørbar fil (lik Windows ' .exe -filer). Du kan enkelt dele det mellom systemer eller laste opp til sky. Snap og Flatpak -apper kan gjøres bærbare ved å inkludere appen selv, så vel som barnelager som appen er avhengig av. Prosessen er imidlertid ikke så enkel som Appimage og krever bruk av flere kommandoer for å oppnå de samme resultatene.

Automatiske oppdateringer

SNAP- og Flatpak -apper er installert fra sentraliserte applikasjonsoppføringer, og apper kan automatisk oppdateres uten brukerinngrep. Appimage mangler en robust automatisk oppdateringsmekanisme. Brukere må laste ned New Appimage Binary og erstatte eksisterende for å installere oppdateringer manuelt for å installere oppdateringer. AppImage App -vedlikeholdere inkluderer noen ganger sin egen oppdateringsmekanisme som med jevne mellomrom sjekker oppdateringer tilgjengeligheten på serverne sine eller krever brukerinngrep. Nylig ga Appimage Developers et verktøy for å oppdatere eksisterende binærvinger ved å tilby Delta -oppdateringer. Imidlertid krever det fortsatt nedlasting av oppdateringsverktøyet og bruker det manuelt med en eksisterende binært appimage. Det er ingen håndfri oppdateringsmekanisme tilgjengelig for appimage ennå.

Appstørrelse

AppImage har lavest fotavtrykk av appens størrelse, sannsynligvis fordi det serverer binærfiler i komprimert format. SNAP- og Flatpak -appstørrelser varierer veldig fra app til app, og det er vanskelig å finne ut som gir lavere installasjonsstørrelse. Bare for referanse, Inkscape Appimage i skrivende stund var denne artikkelen rundt 98 MB, SNAP var rundt 183 MB og Flatpak var rundt 109 MB.

Konklusjon

Universal App Packages er en vinn-vinn-situasjon for både utviklere og sluttbrukere. Disse emballasjeformatene gir mye raskere levering av sikre apper. De åpner også dører for utviklere som har ristet bort fra Linux på grunn av forskjellige emballasjestandarder brukt 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 vil bli løst overtid. Universelle kryssfordelingspakker er fremtiden, og adopsjonen deres vil øke. Sakte men jevnlig kan distribusjoner flytte til å knipse, flatpak eller appimage bygger i fremtiden bortsett fra kjernebiblioteker og viktige pakker som er nødvendige for at operativsystemet skal fungere.