Quelles sont les différences entre snaps, appimage, flatpak et autres?

105

Ces derniers temps, les étudiants m'ont posé cette question et, même si j'ai beaucoup d'informations à offrir, je n'ai pas trouvé de source qui puisse indiquer aux personnes où elles peuvent lire une réponse mise à jour (j'ai trouvé beaucoup d'informations erronées et obsolètes ). Voici quelques-unes des questions que je me pose concernant les formats de package tels que snap, appimage, flatpak et autres dans le cadre de cette évolution des systèmes d'emballage universels:

  • Qui a créé le format de paquet?
  • Quelles caractéristiques offre-t-elle?
  • Quelles caractéristiques lui sont uniques? (Que les autres n'ont pas encore)
  • Qui le soutient?
  • Quelles distributions l'utilisent?
  • Quel est le but du paquet? (Pour le bureau, les nuages, le mobile, etc.)
  • Lesquels sont plus activement développés?
Luis Alvarado
la source

Réponses:

68

Voici une longue comparaison tabulaire des fonctionnalités AppImage, Snap et Flatpak. C'est à partir du Wiki AppImage sur GitHub :

Comparaison entre AppImage, Snap et Flatpack

Kurt Pfeifle
la source
43
Je pense que cela vaut la peine de souligner que ce graphique est construit dans une perspective AppImage. Cela signifie que le jeu de fonctionnalités par défaut est le jeu de fonctionnalités d’AppImage et que les autres sont comparés à ses fonctionnalités. Cela donne un avantage biaisé à AppImage. C'est aussi un peu dépassé. Par exemple, Snap a ajouté le support du thème cet automne.
Dan
1
@ Dan: Si vous êtes au courant de la prise en charge de Snap, pourquoi ne pas simplement l'éditer dans le graphique? De plus, si vous connaissez d'autres fonctionnalités présentes dans Snap et / ou Flatpak: n'hésitez pas à modifier le graphique avec les éléments respectifs dans le wiki d'AppImage ...
Kurt Pfeifle
11
Je ne sais pas comment vous pouvez dire cela @ Kurt. Jetez un coup d'oeil à la section "Objectifs", à titre d'exemple. Il montre exclusivement les objectifs d'AppImage, comme si aucun autre projet n'avait d'objectif. Comme si seuls les objectifs d’AppImage avaient de l’importance.
Dan
5
Je comprends ce que vous voulez dire - je pourrais éditer le wiki. Cependant, votre réponse est une image géante qui restera probablement telle quelle à perpétuité, même si le wiki change. Je pense que le parti pris mérite d'être mentionné dans le contexte de votre réponse pour les futurs lecteurs de Ask Ubuntu.
Dan
2
@Dan: J'ai modifié la réponse le 4 juillet pour insérer une version mise à jour de la capture d'écran à partir du site Web (afin d'inclure certaines modifications apportées au wiki). Où est le problème pour vous lors de l'édition du Wiki original, de la création d'une nouvelle capture d'écran, puis de la suggestion d'une modification de cette réponse avec la nouvelle capture d'écran?
Kurt Pfeifle
51

Les instantanés ont été créés par Canonical pour Ubuntu. Les principaux avantages des clichés sont les suivants:

  • Indépendance des dépendances - toutes les bibliothèques et dépendances sont incluses dans le paquet. Cela permet également d’avoir plusieurs versions du même programme.
  • Sandboxing - les instantanés utilisent AppArmor modifié pour mettre en sandbox les applications.
  • Mises à jour delta - les instantanés devraient également permettre les mises à jour delta

L'inconvénient principal des captures instantanées est que le logiciel ne peut utiliser que les bibliothèques incluses dans son package. Cela constitue un risque potentiel pour la sécurité, car l'auteur du package doit conserver toutes les bibliothèques corrigées et mises à jour.

Les instantanés peuvent actuellement s'exécuter sous Ubuntu, Arch Linux, Fedora, Linux Mint, CentOS et Gentoo. Ils sont également utilisés dans Ubuntu Touch. Ils sont conçus pour les ordinateurs de bureau, serveurs, téléphones, IoT et routeurs.

Flatpak présente les mêmes avantages que les clichés. Cependant, il utilise Namespaces au lieu d'AppArmour pour le sandboxing. La principale différence est que Flatpak peut utiliser à la fois les bibliothèques incluses dans le package et les bibliothèques partagées d'un autre Flatpak.

Alexander Larsson, employé de Red Hat, est le développeur de Flatpak. Le logiciel Flatpak est actuellement disponible sur Arch Linux, Debian, Fedora, Mageia, Solus et Ubuntu. Il se concentre uniquement sur les ordinateurs de bureau.

Les applications sont développées par Simon Peter. Comme dans les instantanés ou Flatpak, le paquet inclut toutes les bibliothèques nécessaires à l'exécution du programme. Les programmes AppImage ne sont pas en sandbox et ne nécessitent pas de droits root pour s'exécuter. Selon le site Web du projet, AppImages devrait fonctionner sous Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux et Ubuntu.

Magma
la source
3
Solus a annoncé son soutien à flatpak en janvier 2017
Anthon,
8
Ils devraient tous avoir juste construit sur appimage. Au lieu de réinventer la même idéologie et d'introduire la fragmentation et les confusions. Notez également que, comme ces packages portables contiennent toutes les bibliothèques, leur taille sera considérablement plus lourde par rapport à une application utilisant des bibliothèques partagées installées via apt ou .deb. Si vous devez savoir lequel est le plus populaire, flatpak bat actuellement des records.
answerSeeker
Avec l’attaque Spectre à l’état sauvage, j’imagine que les bibliothèques partagées susciteront moins d’intérêt pour des raisons de sécurité. :-)
Chris
4
@answerSeeker: votre commentaire sur les paquets portables étant "considérablement plus volumineux par rapport à une application utilisant des bibliothèques partagées installées via apt ou .deb" n'est pas nécessairement sauvegardé par les faits réels. Les images et les images instantanées sont compressées dans des images SquashFS (ce qui n'est pas le cas pour Flatpak). Ils ne sont jamais extraits sur le disque, pas même pendant l'exécution. AppImages, lors de l'exécution, se monte lui-même sur un point de montage créé temporairement /tmp/.mount_<random-chars>et s'exécute à partir de là, toujours compressé! Voir les numéros pour l'exemple de LibreOffice dans la capture d'écran de ma réponse ci-dessous ...
Kurt Pfeifle
1
@PabloBianchi: les nouvelles AppImages (de la variété plus récente de 'type 2' ) peuvent avoir un mécanisme de mise à jour intégré. Cette opération télécharge un fichier binaire différentiel binaire à partir de l'emplacement AppImage d'origine, en enregistrant la taille et l'heure de téléchargement, une fois qu'une nouvelle version est disponible et après que l'utilisateur l'ait souhaité. Les outils appimageupdatetool(CLI) et AppImageUpdate-Qt(GUI) aident à cela.
Kurt Pfeifle le