Förpackning

Jämförelse Snap vs Flatpak vs AppImage

Jämförelse Snap vs Flatpak vs AppImage
Nya förpackningsformat som Snap, Flatpak och AppImage tillhandahåller agnostiska distributionspaket som fungerar på de flesta Linux-distributioner. Detta löser förpackningsproblem för apputvecklare som vill distribuera sina appar på flera Linux-distributioner. Nu kan de fokusera på en byggnad som fungerar överallt istället för att gå igenom olika förpackningsstandarder.

Den här artikeln kommer att lista de viktigaste skillnaderna mellan dessa tre förpackningsformat ur slutanvändarnas perspektiv. Skillnader i förpackningsarkitektur och enkel förpackning ur utvecklares synvinkel kommer inte att behandlas här.

Tabellen nedan sammanfattar de viktigaste skillnaderna mellan Snap, Flatpak och AppImage-filformat. De flesta av dem är självförklarande, andra punkter har förklarats under jämförelsetabellen.

Knäppa Flatpak AppImage
Android Like Permission Controls växlar (GUI och CLI) Ja Ja Nej
Sandboxstöd Ja Ja Ja
Sandlåda obligatoriskt Ja Ja Nej
Native Theme Support Ja (med försiktighetsåtgärder) Ja (med försiktighetsåtgärder) Ja (med försiktighetsåtgärder)
Stöd för buntade bibliotek Ja Ja Ja
Appportabilitet Ja (med försiktighetsåtgärder) Ja (med försiktighetsåtgärder) Ja
Fullt innehållt enda körbart stöd (liknar .exe-filer i Windows) Nej Nej Ja
Online App Store Ja Ja Ja
Plugins för Desktop App Store-programvara Ja Ja Nej
Multi-version Parallel Apps Support Ja Ja Ja
Automatiska uppdateringar Ja Ja Ja (med försiktighetsåtgärder)
Chrome OS Support (genom Crostini-behållare) Ja Ja Ja
Appstorlek Varierar men högre än AppImage Varierar men högre än AppImage Lägst
Antal tillgängliga appar i App Store Högsta Lägst Någonstans mitt emellan

Behörighetskontroller för användare

Snap ger både grafiska och kommandoradsgränssnitt för användarkontrollerade behörigheter. Du kan använda den förinstallerade appen "Ubuntu Software" för att hantera behörigheter för en snap-app.

För att se behörigheter för en snap-app med kommandoradsgränssnittet, kör kommandot nedan:

$ snap-anslutningar krom

Byt ut "krom" med namnet på din snap-app.

För att se en lista över alla installerade snap-appar, kör kommandot nedan:

$ snap-lista

För att bevilja kameratillstånd till krom snap, använd kommandot nedan:

$ snap connect krom: kamera

För att återkalla kameratillståndet kör du kommandot nedan:

$ snap koppla bort krom: kamera

Lämpliga kommandon för behörighetshantering finns i kolumnen "Plug" (visas i skärmdumpen ovan).

Flatpak tillhandahåller också ett gränssnitt för beviljande och återkallande av behörigheter. Du kan använda programvaran GNOME (kräver GNOME 3.32.x) för att hantera behörigheter med en grafisk metod. För att se behörigheter för en flatpak-app, kör kommandot nedan:

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

Ersätt “org.kde.Platform ”med namnet på din Flatpak-app.

För att se en lista över alla flatpak-appar som är installerade på ditt system, kör du kommandot nedan:

$ flatpak-lista

För att ändra behörigheterna för en flatpak-app måste du ändra värdena på variabler som visas i skärmdumpen ovan. Till exempel kommer kommandot nedan att göra hela filsystemet tillgängligt för en flappak-app:

$ sudo flatpak åsidosättande organisation.kde.Plattform --filsystem = värd

AppImage stöder inte detaljerade behörighetskontroller för närvarande, men utvecklare har antytt att behörighetskontroller för Android-stil kan implementeras i framtiden.

Sandlåda

Snap, Flatpak och AppImage stöder sandlådade appmiljöer ur lådan. En sandlåda är en miljö (eller behållare / filsystem / arkiv) som är helt isolerad och avskild från värdsystemet. Varje interaktion med värdsystemet görs med begränsade API- och behörighetskontroller. Vissa av dessa behörigheter kräver uttryckligen opt-in av användare eller kan inaktiveras helt av slutanvändare. En sandbox-app är säker än någon annan app som har full åtkomst till värdsystemet. Alla Android-appar körs i en sandlåda och dessa tre förpackningsformat fungerar på liknande idé.

Native Theme Support

Alla tre förpackningsformaten stöder inbyggt utseende och känsla för GTK- och Qt-appar, om än med vissa begränsningar. Till exempel kräver Snap och Flatpak att systemteman ska förpackas i sina respektive format. Om du använder tredjeparts teman och ikonpaket kanske du inte får rätt tema-, markör- och appikoner. Integrationen har förbättrat övertid men de blir något korta jämfört med appar installerade från den officiella pakethanteraren för en distribution.

Appportabilitet

En AppImage-app är en enda körbar fil (som liknar Windows .exe-filer). Du kan enkelt dela det mellan system eller ladda upp till molnet. Snap- och Flatpak-appar kan göras bärbara genom att inkludera själva appen samt barnförvar som appen är beroende av. Processen är dock inte lika lätt som AppImage och kräver att du använder flera kommandon för att uppnå samma resultat.

Automatiska uppdateringar

Snap- och Flatpak-appar installeras från centraliserade applikationsförvar och appar kan automatiskt uppdateras utan användarens ingripande. AppImage saknar en robust automatisk uppdateringsmekanism. Användare måste manuellt ladda ner nya AppImage-binära och ersätta befintliga för att installera uppdateringar. Appunderhållare av AppImage inkluderar ibland sin egen uppdateringsmekanism som regelbundet kontrollerar tillgänglighetsuppdateringar på sina servrar eller kräver användarintervention. Nyligen tillhandahöll AppImage-utvecklare ett verktyg för att uppdatera befintliga binärer genom att tillhandahålla delta-uppdateringar. Det kräver dock fortfarande nedladdning av uppdateringsverktyget och manuellt med det med en befintlig AppImage-binär. Det finns ingen hands-free uppdateringsmekanism tillgänglig för AppImage än.

Appstorlek

AppImage har lägsta fotstorlek för appstorlek, troligen för att den serverar binära filer i komprimerat format. Snap- och Flatpak-appstorlekar varierar kraftigt från app till app och det är svårt att fastställa vilken som ger lägre installationsstorlek. Bara för referens var Inkscape AppImage när denna artikel skrevs cirka 98 MB, Snap var cirka 183 MB och Flatpak cirka 109 MB.

Slutsats

Universella apppaket är en vinn-vinn-situation för både utvecklare och slutanvändare. Dessa förpackningsformat möjliggör mycket snabbare leverans av säkra appar. De öppnar också dörrar för utvecklare som har skämtts bort från Linux på grund av olika förpackningsstandarder som används i olika distributioner. Det finns några problem som måste strykas ut i dessa tre förpackningsformat. De är dock alla under aktiv utveckling och dessa frågor kommer att fixas övertid. Universella korsdistributionspaket är framtiden och antagandet kommer att öka. Långsamt men stadigt kan distributioner flyttas till Snap-, Flatpak- eller AppImage-byggnader i framtiden förutom kärnbibliotek och viktiga paket som behövs för att operativsystemet ska fungera.

Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...
Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...
OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...