Comparaison Snap vs Flatpak vs AppImage

Comparaison Snap vs Flatpak vs AppImage
De nouveaux formats d'emballage comme Snap, Flatpak et AppImage fournissent des packages agnostiques de distribution qui fonctionnent sur la plupart des distributions Linux. Cela résout les problèmes d'emballage rencontrés par les développeurs d'applications qui souhaitent distribuer leurs applications sur plusieurs distributions Linux. Maintenant, ils peuvent se concentrer sur une construction qui fonctionne partout au lieu de passer par différentes normes d'emballage.

Cet article répertorie les principales différences entre ces trois formats d'emballage du point de vue des utilisateurs finaux. Les différences dans l'architecture d'emballage et la facilité d'emballage du point de vue des développeurs ne seront pas couvertes ici.

Le tableau ci-dessous résume les principales différences entre les formats de fichiers SNAP, FlatPak et AppImage. La plupart d'entre eux sont explicites, d'autres points ont été expliqués sous le tableau de comparaison.

Instantané Flatpak Applimager
Android comme les commandes d'autorisation bascules (GUI et CLI) Oui Oui Non
Support de bacs à sable Oui Oui Oui
Boîte de sable obligatoire Oui Oui Non
Support de thème natif Oui (avec les mises en garde) Oui (avec les mises en garde) Oui (avec les mises en garde)
Prise en charge des bibliothèques groupées Oui Oui Oui
Portabilité des applications Oui (avec les mises en garde) Oui (avec les mises en garde) Oui
Support exécutable unique entièrement contenu (similaire à .Fichiers EXE dans Windows) Non Non Oui
APPOTAGE D'APPROSSEMENT Oui Oui Oui
Plugins pour le logiciel de bureau de bureau Oui Oui Non
Prise en charge des applications parallèles multi-version Oui Oui Oui
Mises à jour automatiques Oui Oui Oui (avec les mises en garde)
Support Chrome OS (via des conteneurs Crostini) Oui Oui Oui
Taille de l'application Varie mais plus élevé qu'AppIMAGE Varie mais plus élevé qu'AppIMAGE Le plus bas
Nombre d'applications disponibles dans l'App Store Le plus élevé Le plus bas Quelque part entre les deux

Contrôles d'autorisation pour les utilisateurs

SNAP fournit des interfaces graphiques et de ligne de commande pour les autorisations contrôlées par l'utilisateur. Vous pouvez utiliser l'application préinstallée «Ubuntu Software» pour gérer les autorisations d'une application SNAP.

Pour voir les autorisations d'une application SNAP à l'aide de l'interface de ligne de commande, exécutez la commande ci-dessous:

$ Snap Connections Chromium

Remplacez «Chromium» par le nom de votre application SNAP.

Pour voir une liste de toutes les applications SNAP installées, exécutez la commande ci-dessous:

$ SNAP LIST

Pour accorder la permission de la caméra à Chromium Snap, utilisez la commande ci-dessous:

$ Snap Connect Chromium: appareil photo

Pour révoquer l'autorisation de la caméra, exécutez la commande ci-dessous:

$ Snap Disconnect Chromium: Camera

Les commandes appropriées pour la gestion des autorisations peuvent être trouvées dans la colonne «Plug» (illustrée dans la capture d'écran ci-dessus).

Flatpak fournit également une interface pour l'octroi et la révocation des autorisations. Vous pouvez utiliser l'application logicielle Gnome (nécessite GNOME 3.32.x) pour gérer les autorisations à l'aide d'une méthode graphique. Pour voir les autorisations d'une application Flatpak, exécutez la commande ci-dessous:

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

Remplacer «Org.kde.Plateforme »avec le nom de votre application Flatpak.

Pour afficher une liste de toutes les applications Flatpak installées sur votre système, exécutez la commande ci-dessous:

$ Flatpak Liste

Pour modifier les autorisations d'une application Flatpak, vous devez modifier les valeurs des variables indiquées dans la capture d'écran ci-dessus. Par exemple, la commande ci-dessous mettra entièrement le système de fichiers à la disposition d'une application Flappak:

$ sudo flatpak override org.kde.Plate-forme - fileSystem = hôte

AppImage ne prend pas en charge les contrôles d'autorisation granulaires à partir de maintenant, mais les développeurs ont laissé entendre que les contrôles d'autorisation de style Android pourraient être mis en œuvre à l'avenir.

Sable

Les environnements d'application Snap, Flatpak et AppImage prennent en charge. Un bac à sable est un environnement (ou un conteneur / système de fichiers / archive) qui est complètement isolé et distant du système hôte. Toute interaction avec le système hôte est effectuée en utilisant des contrôles API et d'autorisation limités. Certaines de ces autorisations nécessitent explicitement l'opt-in par les utilisateurs ou peuvent être complètement désactivées par les utilisateurs finaux. Une application sandbox est sécurisée que toute autre application qui a un accès complet au système hôte. Toutes les applications Android s'exécutent dans un bac à sable et ces trois formats d'emballage fonctionnent sur une idée similaire.

Support de thème natif

Les trois formats d'emballage prennent en charge l'aspect et la sensation natifs pour les applications GTK et QT, mais avec certaines limites. Par exemple, Snap et FlatPak nécessitent des thèmes système à être emballés dans leurs formats respectifs. Si vous utilisez des thèmes et des icônes tiers, vous ne pouvez pas obtenir le thème, le curseur et les icônes du curseur et des applications. L'intégration a amélioré les heures supplémentaires, mais ils ne sont pas en retard par rapport aux applications installées à partir du gestionnaire de package officiel d'une distribution.

Portabilité des applications

Une application AppImage est un fichier exécutable unique (similaire à Windows ' .Fichiers EXE). Vous pouvez facilement le partager entre les systèmes ou télécharger sur Cloud. Les applications Snap et Flatpak peuvent être rendues portables en incluant l'application elle-même, ainsi que les référentiels d'enfants dont l'application dépend. Cependant, le processus n'est pas aussi facile qu'appimage et nécessite d'utiliser plusieurs commandes pour obtenir les mêmes résultats.

Mises à jour automatiques

Les applications Snap et Flatpak sont installées à partir de référentiels d'applications centralisés et les applications peuvent être automatiquement mises à jour sans intervention de l'utilisateur. AppImage n'a pas de mécanisme de mise à jour automatique robuste. Les utilisateurs doivent télécharger manuellement le nouveau Binaire AppImage et remplacer un existant pour installer des mises à jour. Les responsables de l'application AppImage incluent parfois leur propre mécanisme de mise à jour qui vérifie périodiquement la disponibilité des mises à jour sur leurs serveurs ou nécessite une intervention des utilisateurs. Récemment, les développeurs AppImage ont fourni un outil pour mettre à jour les binaires existants en fournissant des mises à jour Delta. Cependant, il faut toujours télécharger l'outil de mise à jour et l'utiliser manuellement avec un binaire applimage existant. Il n'y a pas encore de mécanisme de mise à jour mains libres pour applimage.

Taille de l'application

AppImage a une empreinte de taille d'application la plus basse, très probablement parce qu'elle sert des binaires au format compressé. Les tailles d'applications Snap et Flatpak varient considérablement d'une application à l'autre et il est difficile de déterminer qui fournit une taille d'installation inférieure. Juste pour référence, Inkscape AppImage au moment de la rédaction de cet article était d'environ 98 Mo, Snap était d'environ 183 Mo et Flatpak était d'environ 109 Mo.

Conclusion

Les packages d'applications universels sont une situation gagnant-gagnant pour les développeurs et les utilisateurs finaux. Ces formats d'emballage permettent une livraison beaucoup plus rapide d'applications sécurisées. Ils ouvrent également des portes aux développeurs qui se sont éloignés de Linux en raison de différentes normes d'emballage utilisées dans différentes distributions. Il y a des problèmes qui doivent être calculés dans ces trois formats d'emballage. Cependant, ils sont tous en cours de développement actif et ces problèmes seront réparés des heures supplémentaires. Les forfaits inter-distributions universels sont l'avenir et leur adoption augmentera. Lentement mais régulièrement, les distributions peuvent se déplacer vers Snap, Flatpak ou AppImage Builds à l'avenir, sauf pour les bibliothèques de base et les packages essentiels qui sont nécessaires pour que le système d'exploitation fonctionne.