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.