Vergleichsschnapp gegen Flatpak gegen Appimage

Vergleichsschnapp gegen Flatpak gegen Appimage
Neue Verpackungsformate wie Snap, Flatpak und Appimage bieten Agnostische Verteilungspakete, die an den meisten Linux -Verteilungen arbeiten. Dies löst Verpackungsprobleme für App -Entwickler, die ihre Apps auf mehreren Linux -Verteilungen verteilen möchten. Jetzt können sie sich auf einen Build konzentrieren, der überall funktioniert, anstatt unterschiedliche Verpackungsstandards durchzugehen.

In diesem Artikel werden die Hauptunterschiede zwischen diesen drei Verpackungsformaten aus der Sicht der Endbenutzer aufgeführt. Unterschiede in der Verpackungsarchitektur und der einfachen Verpackung aus der Sicht der Entwickler werden hier nicht behandelt.

Die folgende Tabelle fasst die Hauptunterschiede zwischen Snap-, Flatpak- und Appimage -Dateiformaten zusammen. Die meisten von ihnen sind selbsterklärend, andere Punkte wurden unterhalb der Vergleichstabelle erklärt.

Schnappnahme Flatpak Appimage
Android -ähnliche Berechtigungssteuerung Umschaltungen (GUI und CLI) Ja Ja NEIN
Sandbox -Unterstützung Ja Ja Ja
Sandboxen obligatorisch Ja Ja NEIN
Native Theme Support Ja (mit Einschränkungen) Ja (mit Einschränkungen) Ja (mit Einschränkungen)
Unterstützung für gebündelte Bibliotheken Ja Ja Ja
App -Portabilität Ja (mit Einschränkungen) Ja (mit Einschränkungen) Ja
Vollständig eingeführte einzelne ausführbare Unterstützung (ähnlich wie .EXE -Dateien in Windows) NEIN NEIN Ja
Online -App Store Ja Ja Ja
Plugins für Desktop App Store Software Ja Ja NEIN
Mehrversion parallel Apps Support Support Ja Ja Ja
Automatische Updates Ja Ja Ja (mit Einschränkungen)
Chrome OS -Unterstützung (durch Crostini -Behälter) Ja Ja Ja
Appgröße Variiert, aber höher als Appimage Variiert, aber höher als Appimage Niedrigste
Anzahl der im App Store verfügbaren Apps Höchste Niedrigste Irgendwo dazwischen

Berechtigungssteuerungen für Benutzer

SNAP bietet sowohl grafische als auch Befehlszeilenschnittstellen für benutzergesteuerte Berechtigungen. Sie können die vorinstallierte App „Ubuntu Software“ verwenden, um Berechtigungen einer Snap -App zu verwalten.

Um die Berechtigungen einer Snap -App mit der Befehlszeilenschnittstelle zu sehen, führen Sie den folgenden Befehl aus:

$ Snap Connections Chromium

Ersetzen Sie „Chrom“ durch den Namen Ihrer Snap -App.

Um eine Liste aller installierten Snap -Apps anzuzeigen, führen Sie den folgenden Befehl aus:

$ Snap List

Verwenden Sie den folgenden Befehl, um die Genehmigung der Kamera zum Chrom -Snap zu erteilen:

$ snap Connect Chrom: Kamera

Führen Sie den folgenden Befehl aus, um die Genehmigung der Kamera zu widerrufen:

$ SNAP -Trennschrank: Kamera: Kamera

Geeignete Befehle für die Berechtigungsverwaltung finden Sie in der Spalte „Plug“ (angezeigt im obigen Screenshot).

Flatpak bietet auch eine Schnittstelle zur Erteilung und Widerrufsberechtigung. Sie können die Gnome -Software -App verwenden (erfordert GNOME 3.32.x) Berechtigungen mithilfe einer grafischen Methode verwalten. Führen Sie den folgenden Befehl aus, um die Berechtigungen einer Flatpak -App zu sehen:

$ flatpak Info --how-permissions org.kde.Plattform

Ersetzen Sie „org.kde.Plattform ”mit dem Namen Ihrer Flatpak -App.

Um eine Liste aller auf Ihrem System installierten Flatpak -Apps anzuzeigen, führen Sie den folgenden Befehl aus:

$ flatpakliste

Um die Berechtigungen einer Flatpak -App zu ändern, müssen Sie die Werte der im obigen Screenshot gezeigten Variablen ändern. Der folgende Befehl stellt beispielsweise das gesamte Dateisystem für eine Flappak -App zur Verfügung:

$ sudo flatpak override org.kde.Plattform -Filesystem = Host

AppImage unterstützt derzeit granulare Berechtigungskontrollen, aber Entwickler haben angedeutet, dass die Berechtigungskontrollen im Android -Stil in Zukunft implementiert werden können.

Sandboxing

SNAP, Flatpak und Appimage unterstützen sandboxte App -Umgebungen außerhalb der Box. Eine Sandkasten ist eine Umgebung (oder Container- / Dateisystem / Archiv), die vollständig isoliert und vom Hostsystem abgehalten wird. Jede Interaktion mit dem Host -System erfolgt mit begrenzten API- und Berechtigungskontrollen. Einige dieser Berechtigungen erfordern ausdrücklich OPT-In von Benutzern oder können von Endbenutzern vollständig deaktiviert werden. Eine sandboxte App ist sicher als jede andere App, die vollen Zugriff auf das Hostsystem hat. Alle Android -Apps werden in einem Sandkasten ausgeführt und diese drei Verpackungsformat.

Native Theme Support

Alle drei Verpackungsformate unterstützen natives Erscheinungsbild für GTK- und QT -Apps, wenn auch mit einigen Einschränkungen. Zum Beispiel erfordern Snap und Flatpak, dass Systemthemen in ihren jeweiligen Formaten verpackt werden. Wenn Sie Themen und Symbole -Packs Dritter verwenden, erhalten Sie möglicherweise kein richtiges Thema, Cursor- und App -Symbole. Die Integration hat die Überstunden verbessert, aber im Vergleich zu Apps, die vom offiziellen Paketmanager einer Verteilung installiert wurden.

App -Portabilität

Eine AppImage -App ist eine einzelne ausführbare Datei (ähnlich wie Windows ' .EXE -Dateien). Sie können es problemlos zwischen Systemen oder Upload in Cloud teilen. SNAP- und Flatpak -Apps können durch Einbeziehung der App selbst sowie von untergeordneten Repositorys, von denen die App abhängt, tragbar gemacht werden, von denen die App abhängt. Der Prozess ist jedoch nicht so einfach wie Appimage und erfordert die Verwendung mehrerer Befehle, um die gleichen Ergebnisse zu erzielen.

Automatische Updates

SNAP- und FLATPAK -Apps werden aus zentralisierten Anwendungsrepositorys installiert, und Apps können automatisch ohne Benutzerintervention aktualisiert werden. Appimage fehlt ein robuster automatischer Aktualisierungsmechanismus. Benutzer müssen neue Appimage Binary manuell herunterladen und vorhandene ersetzen, um Updates zu installieren. AppImage App -Betreuer enthalten manchmal ihren eigenen Aktualisierungsmechanismus, der regelmäßig Aktualisierungen der Verfügbarkeit auf ihren Servern überprüft oder Benutzerintervention erfordert. In jüngster Zeit haben Appimage -Entwickler ein Tool zur Aktualisierung vorhandener Binärdatoren durch Bereitstellung von Delta -Updates bereitgestellt. Es erfordert jedoch weiterhin das Herunterladen des Update -Tools und die manuelle Verwendung mit einem vorhandenen Appimage -Binary. Für Appimage ist noch kein Freisprech-Update-Mechanismus verfügbar.

Appgröße

Appimage hat die niedrigste App -Größe, die Binärdateien im komprimierten Format serviert. SNAP- und Flatpak -App -Größen variieren stark von App zu App. Es ist schwierig festzustellen, welche eine geringere Installationsgröße bietet. Nur als Referenz, Inkscape Appimage zum Zeitpunkt des Schreibens dieses Artikels war ungefähr 98 MB, Snap war ungefähr 183 MB und Flatpak ca. 109 MB.

Abschluss

Universal App-Pakete sind eine Win-Win-Situation sowohl für Entwickler als auch für Endbenutzer. Diese Verpackungsformate ermöglichen eine viel schnellere Lieferung sicherer Apps. Sie öffnen auch Türen für Entwickler, die aufgrund unterschiedlicher Verpackungsstandards, die in verschiedenen Verteilungen verwendet wurden. In diesen drei Verpackungsformaten müssen einige Probleme gebügelt werden. Sie sind jedoch alle in aktiver Entwicklung und diese Probleme werden Überstunden behoben. Universelle Cross-Distribution-Pakete sind die Zukunft und ihre Annahme wird zunehmen. Langsam aber stetig können Verteilungen in Zukunft zu Snap, Flatpak oder Appimage -Builds mit Ausnahme von Kernbibliotheken und wesentlichen Paketen umgehen, die für das Betriebssystem benötigt werden, um zu arbeiten.