Emballage

Sammenligning Snap vs Flatpak vs AppImage

Sammenligning Snap vs Flatpak vs AppImage
Nye emballeringsformater som Snap, Flatpak og AppImage leverer agnostiske pakker til distribution, der fungerer på de fleste Linux-distributioner. Dette løser emballageproblemer, som app-udviklere står over for, som ønsker at distribuere deres apps på flere Linux-distributioner. Nu kan de fokusere på en bygning, der fungerer overalt i stedet for at gennemgå forskellige emballagestandarder.

Denne artikel viser de vigtigste forskelle mellem disse tre emballeringsformater set fra slutbrugernes perspektiv. Forskelle i emballagearkitektur og let emballering set fra udvikleres synspunkt vil ikke blive dækket her.

Tabellen nedenfor opsummerer de vigtigste forskelle mellem Snap, Flatpak og AppImage-filformater. De fleste af dem forklarer sig selv, andre punkter er blevet forklaret under sammenligningstabellen.

Snap Flatpak AppImage
Android-lignende tilladelseskontrol skifter (GUI og CLI) Ja Ja Ingen
Sandboxing Support Ja Ja Ja
Sandboxing obligatorisk Ja Ja Ingen
Native Theme Support Ja (med forbehold) Ja (med forbehold) Ja (med forbehold)
Støtte til medfølgende biblioteker Ja Ja Ja
Appportabilitet Ja (med forbehold) Ja (med forbehold) Ja
Fuldt indeholdt enkelt eksekverbar support (svarende til .exe-filer i Windows) Ingen Ingen Ja
Online App Store Ja Ja Ja
Plugins til Desktop App Store-software Ja Ja Ingen
Multi-version Parallel Apps Support Ja Ja Ja
Automatiske opdateringer Ja Ja Ja (med forbehold)
Chrome OS Support (gennem Crostini-containere) Ja Ja Ja
Appstørrelse Varierer, men højere end AppImage Varierer, men højere end AppImage Laveste
Antal tilgængelige apps i App Store Højeste Laveste Et eller andet sted imellem

Tilladelseskontrol for brugere

Snap giver både grafiske og kommandolinjegrænseflader til brugerstyrede tilladelser. Du kan bruge den forudinstallerede "Ubuntu Software" -app til at administrere tilladelser til en snap-app.

For at se tilladelser for en snap-app ved hjælp af kommandolinjegrænsefladen skal du køre kommandoen nedenfor:

$ snapforbindelser krom

Udskift "krom" med navnet på din snap-app.

For at se en liste over alle installerede snap-apps skal du køre kommandoen nedenfor:

$ snapliste

Brug kommandoen nedenfor for at give kameraet tilladelse til chrom snap

$ snap connect chrom: kamera

For at tilbagekalde kameratilladelsen skal du køre kommandoen nedenfor:

$ snap afbryd chrom: kamera

Passende kommandoer til tilladelsesadministration kan findes i kolonnen "Plug" (vist i skærmbilledet ovenfor).

Flatpak giver også en grænseflade til tildeling og tilbagekaldelse af tilladelser. Du kan bruge GNOME Software-appen (kræver GNOME 3.32.x) til at administrere tilladelser ved hjælp af en grafisk metode. For at se tilladelser til en flatpak-app skal du køre kommandoen nedenfor:

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

Udskift “org.kde.Platform ”med navnet på din Flatpak-app.

For at se en liste over alle flatpak-apps, der er installeret på dit system, skal du køre kommandoen nedenfor:

$ flatpak liste

For at ændre tilladelserne til en flatpak-app skal du ændre værdierne for variabler, der er vist i skærmbilledet ovenfor. For eksempel vil kommandoen nedenfor gøre hele filsystemet tilgængeligt for en flappak-app:

$ sudo flatpak tilsidesættelse af organisation.kde.Platform --filsystem = vært

AppImage understøtter ikke detaljerede tilladelseskontrol fra nu af, men udviklere har antydet, at tilladelseskontrol i Android-stil muligvis vil blive implementeret i fremtiden.

Sandboxing

Snap, Flatpak og AppImage understøtter sandboxede app-miljøer ud af kassen. En sandkasse er et miljø (eller container / filsystem / arkiv), der er helt isoleret og fjernt fra værtssystemet. Enhver interaktion med værtssystemet udføres ved hjælp af begrænset API og tilladelseskontrol. Nogle af disse tilladelser kræver eksplicit opt-in af brugere eller kan deaktiveres fuldstændigt af slutbrugere. En app med sandkasse er sikker end nogen anden app, der har fuld adgang til værtssystemet. Alle Android-apps kører i en sandkasse, og disse tre emballeringsformater fungerer på en lignende idé.

Native Theme Support

Alle tre emballeringsformater understøtter oprindeligt udseende og følelse af GTK- og Qt-apps, omend med nogle begrænsninger. For eksempel kræver Snap og Flatpak, at systemtemaer pakkes i deres respektive formater. Hvis du bruger tredjeparts temaer og ikonpakker, får du muligvis ikke korrekte tema-, markør- og appikoner. Integrationen har forbedret overarbejde, men de mangler lidt i sammenligning med apps installeret fra den officielle pakkehåndtering af en distribution.

Appportabilitet

En AppImage-app er en enkelt eksekverbar fil (svarende til Windows ' .exe-filer). Du kan nemt dele det mellem systemer eller uploade til skyen. Snap- og Flatpak-apps kan gøres bærbare ved at inkludere selve appen samt børneregistre, som appen er afhængig af. Processen er dog ikke så let som AppImage og kræver brug af flere kommandoer for at opnå de samme resultater.

Automatiske opdateringer

Snap- og Flatpak-apps installeres fra centraliserede applikationsopbevaringssteder, og apps kan automatisk opdateres uden brugerindblanding. AppImage mangler en robust automatisk opdateringsmekanisme. Brugere skal manuelt downloade ny AppImage-binær og erstatte eksisterende for at installere opdateringer. AppImage app-vedligeholdere inkluderer undertiden deres egen opdateringsmekanisme, der regelmæssigt kontrollerer tilgængeligheden af ​​opdateringer på deres servere eller kræver brugerindgriben. For nylig leverede AppImage-udviklere et værktøj til at opdatere eksisterende binære filer ved at levere deltaopdateringer. Det kræver dog stadig at downloade opdateringsværktøjet og bruge det manuelt med en eksisterende AppImage-binær. Der er endnu ingen håndfri opdateringsmekanisme til rådighed for AppImage.

Appstørrelse

AppImage har den laveste appstørrelse, sandsynligvis fordi den serverer binære filer i komprimeret format. Snap- og Flatpak-appstørrelser varierer meget fra app til app, og det er svært at fastslå, hvilket giver lavere installationsstørrelse. Bare til reference var Inkscape AppImage i skrivende stund omkring 98 MB, Snap var omkring 183 MB og Flatpak var omkring 109 MB.

Konklusion

Universal-app-pakker er en win-win-situation for både udviklere og slutbrugere. Disse emballeringsformater tillader meget hurtigere levering af sikre apps. De åbner også døre for udviklere, der har været væk fra Linux på grund af forskellige emballagestandarder brugt i forskellige distributioner. Der er nogle problemer, der skal stryges ud i disse tre emballeringsformater. De er imidlertid alle under aktiv udvikling, og disse problemer vil blive løst overarbejde. Universelle krydsdistributionspakker er fremtiden, og deres vedtagelse vil stige. Langsomt men støt kan distributioner flytte til Snap-, Flatpak- eller AppImage-builds i fremtiden undtagen kernebiblioteker og vigtige pakker, der er nødvendige for, at operativsystemet fungerer.

Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...
OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...
OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...