Emballage

Comparaison Snap vs Flatpak vs AppImage

Comparaison Snap vs Flatpak vs AppImage
De nouveaux formats d'emballage tels que Snap, Flatpak et AppImage fournissent des packages indépendants de la distribution qui fonctionnent sur la plupart des distributions Linux. Cela résout les problèmes de packaging rencontrés par les développeurs d'applications qui souhaitent distribuer leurs applications sur plusieurs distributions Linux. Maintenant, ils peuvent se concentrer sur une version 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.

Se casser Flatpak AppImage
Basculement des contrôles d'autorisation comme Android (GUI et CLI) Oui Oui Non
Prise en charge du bac à sable Oui Oui Oui
Sandboxing obligatoire Oui Oui Non
Prise en charge des thèmes natifs Oui (avec mises en garde) Oui (avec mises en garde) Oui (avec mises en garde)
Prise en charge des bibliothèques groupées Oui Oui Oui
Portabilité de l'application Oui (avec mises en garde) Oui (avec mises en garde) Oui
Prise en charge d'un exécutable unique entièrement contenu (similaire à .fichiers exe dans Windows) Non Non Oui
Boutique d'applications en ligne Oui Oui Oui
Plugins pour le logiciel Desktop App Store Oui Oui Non
Prise en charge des applications parallèles multi-versions Oui Oui Oui
Mises à jour automatiques Oui Oui Oui (avec mises en garde)
Prise en charge de Chrome OS (via les conteneurs Crostini) Oui Oui Oui
Taille de l'application Varie mais supérieur à AppImage Varie mais supérieur à AppImage Le plus bas
Nombre d'applications disponibles dans l'App Store Plus haut Le plus bas Quelque part entre les deux

Contrôles d'autorisation pour les utilisateurs

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

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

$ snap connexions chrome

Remplacez "chrome" par le nom de votre application snap.

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

$ liste d'instantanés

Pour accorder à l'appareil photo l'autorisation de chromium snap, utilisez la commande ci-dessous :

$ snap connect chrome:caméra

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

$ snap déconnecter chrome:caméra

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

Flatpak fournit également une interface pour accorder et révoquer des autorisations. Vous pouvez utiliser l'application GNOME Software (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.Plate-forme

Remplacer « org.kde.Platform" 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 :

$ liste de plats

Pour modifier les autorisations d'une application flatpak, vous devez modifier les valeurs des variables affichées dans la capture d'écran ci-dessus. Par exemple, la commande ci-dessous rendra le système de fichiers entier disponible pour 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 pour le moment, mais les développeurs ont laissé entendre que des contrôles d'autorisation de style Android pourraient être implémentés à l'avenir.

Bac à sable

Snap, Flatpak et AppImage prennent en charge les environnements d'applications en bac à sable prêts à l'emploi. Un bac à sable est un environnement (ou conteneur / système de fichiers / archive) complètement isolé et distant du système hôte. Toute interaction avec le système hôte se fait à l'aide d'API et de contrôles d'autorisation limités. Certaines de ces autorisations nécessitent explicitement l'adhésion des utilisateurs ou peuvent être complètement désactivées par les utilisateurs finaux. Une application en bac à sable est plus sécurisée que toute autre application ayant 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.

Prise en charge des thèmes natifs

Les trois formats d'emballage prennent en charge l'apparence native des applications GTK et Qt, mais avec certaines limitations. Par exemple, Snap et Flatpak nécessitent que les thèmes système soient emballés dans leurs formats respectifs. Si vous utilisez des thèmes et des packs d'icônes tiers, vous risquez de ne pas obtenir les icônes de thème, de curseur et d'application correctes. L'intégration s'est améliorée au fil du temps, mais elles sont légèrement insuffisantes par rapport aux applications installées à partir du gestionnaire de packages 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 le télécharger dans le cloud. Les applications Snap et Flatpak peuvent être rendues portables en incluant l'application elle-même, ainsi que les référentiels enfants dont dépend l'application. Cependant, le processus n'est pas aussi simple qu'AppImage et nécessite l'utilisation de 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 manque d'un mécanisme de mise à jour automatique robuste. Les utilisateurs doivent télécharger manuellement le nouveau binaire AppImage et remplacer celui existant pour installer les 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 l'intervention de l'utilisateur. Récemment, les développeurs d'AppImage ont fourni un outil pour mettre à jour les binaires existants en fournissant des mises à jour delta. Cependant, cela nécessite toujours de télécharger l'outil de mise à jour et de l'utiliser manuellement avec un binaire AppImage existant. Il n'y a pas encore de mécanisme de mise à jour mains libres disponible pour AppImage.

Taille de l'application

AppImage a la plus faible empreinte de taille d'application, très probablement parce qu'elle sert des binaires au format compressé. Les tailles des applications Snap et Flatpak varient considérablement d'une application à l'autre et il est difficile de déterminer laquelle 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 universelles 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 détournés de Linux en raison des différentes normes d'emballage utilisées dans différentes distributions. Certains problèmes doivent être résolus dans ces trois formats d'emballage. Cependant, ils sont tous en cours de développement et ces problèmes seront résolus au fil du temps. Les forfaits universels de distribution croisée sont l'avenir et leur adoption augmentera. Lentement mais régulièrement, les distributions peuvent évoluer vers les versions Snap, Flatpak ou AppImage à l'exception des bibliothèques de base et des packages essentiels nécessaires au fonctionnement du système d'exploitation.

Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...
Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...