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.