206 votes

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

J'ai reçu cette question récemment de la part d'étudiants et bien que j'aie beaucoup d'informations à offrir, je n'ai pas trouvé de source vers laquelle je puisse diriger les gens pour qu'ils puissent lire une réponse actualisée (j'ai trouvé beaucoup de désinformation et d'informations obsolètes). Ainsi, voici quelques-unes des questions que je me pose pour les formats de paquets comme snap, appimage, flatpak et autres dans cette évolution des systèmes de paquets universels :

  • Qui a créé le format du paquet ?
  • Quelles sont les caractéristiques qu'il offre ?
  • Quelles sont les caractéristiques qui lui sont propres ? (Que les autres n'ont pas encore)
  • Qui le soutient ?
  • Quelles sont les distributions qui l'utilisent ?
  • Quelle est l'orientation du paquet ? (Pour Desktop, Clouds, Mobile, etc.)
  • Lesquelles sont plus activement développées ?

161voto

Kurt Pfeifle Points 3525

Voici un long tableau de comparaison des caractéristiques d'AppImage, de Snap et de Flatpak. Il provient du Wiki AppImage sur GitHub :

Notez que cette comparaison est principalement du point de vue d'AppImage, bien qu'elle tente de représenter équitablement chaque projet.

General

Fonctionnalité

AppImage

Snap

Flatpak

Paquet d'applications GUI de bureau

Outils CLI pour les terminaux de paquets

Oui (avec des alias App ID si vous éditez PATH)[ 1 ]

Processus de serveur de paquets

Possible mais pas l'objectif principal [ 1 ]

Services de systèmes de paquets

x : Non

Oui [ 1 ]

x : Non

Paquet noyaux

x : Non

Oui [ 1 ]

x : Non

Thématique correcte de l'application

Oui (si cela est fait correctement)

Oui (si le thème système actuel a été cassé) [ 1 ]

Oui (si le thème du système actuel a été édité en Flatpak) [ 1 ] [ 2 ] [ 3 ]

Utilisation des bibliothèques et des dépendances

Depuis le système de base ou groupé avec appimage

Depuis le système de base, bouton de base , la plateforme snap ( KDE , GNOME , Wine ) ou regroupés avec Snap

De Freedesktop, GNOME, KDE main temps d'exécution ou regroupés avec Flatpak

Soutien aux entreprises

x : Non (projet communautaire)

Oui (Canonical)

Oui (Endless, Red Hat)

Adoption

Fonctionnalité

AppImage

Snap

Flatpak

Nombre d'applications dans le magasin principal

1126 (2020-08-14 [ 1 ] histoire )

+6400 (2020-08-06 [ 1 ])

~1100 (2020-08-14)

Vendeurs d'applications commerciales de marque utilisant le format

Adobe , IBM , KDAB , Microsoft , Prusa , Ultimaker , ...

Microsoft , Spotify , Slack , JetBrains , Skype , nodesource , ...

Xamarin , Codethink, Igalia, ...

Intégrée aux outils de développement d'applications tierces

constructeur d'électrons

bâtisseur électronique, bâtisseur GNOME

Constructeur GNOME

Utilisabilité

AppImage Télécharger à partir du site, puis glisser-déposer un seul fichier dans le gestionnaire de fichiers vers l'emplacement d'installation souhaité. drag-and-drop Snap Installer via le magasin d'applications de la distribution (supporté d'emblée par Ubuntu, Zorin OS, KDE Neon, ) ou via CLI :

$ snap install gimp

Flatpak Installer via le magasin d'applications de la distribution (supporté d'emblée sur Fedora, EndlessOS, ..) ou via CLI :

$ flatpak install --user flathub org.gimp.GIMP

Sandboxing / Confinement

Fonctionnalité

AppImage

Snap

Flatpak

Peut fonctionner sans sandboxing

Oui (Non requis. Facultatif pour l'emballeur.)

Oui (si l'installation a été construite et approuvée pour un confinement "classique") [ 1 ] [ 2 ]

x : Non (limitation de l'accès aux applications par conception)

Peut être utilisé avec différents bacs à sable

Oui (par exemple Firejail [ 1 ], AppArmor [ 2 ], Papier bulle )

x : Non (est étroitement lié à AppArmor )

x : Non (est étroitement lié à Papier bulle )

Installation / exécution de l'application

Fonctionnalité

AppImage

Snap

Flatpak

Peut fonctionner sans installation

Oui (après avoir activé le bit exécutable)

x : Non (doit être installé par snapd)

x : Non (doit être installé par les outils côté client de Flatpak)

Peut fonctionner sans accès root

Seulement après l'installation

Seulement après l'installation

Exécution à partir d'une source compressée et non décompressée

x : Non

Les auteurs d'applications peuvent placer un fichier téléchargeable à côté de .exe (Windows) et .dmg (macOS) que les utilisateurs peuvent installer sur des systèmes hors ligne.

Oui (.appimage - contient tout ce qui est nécessaire pour exécuter l'application sur un système hors ligne)

x : Non (.snap - nécessite l'installation de snapd et le système doit être oline si des snaps supplémentaires sont nécessaires)

x : Non ( les fichiers .flatpakref nécessitent Internet, les bundles .flatpak nécessitent l'installation d'un runtime)

Permet aux auteurs d'applications d'héberger eux-mêmes leur application sans perte de fonctionnalité.

x : Non

Oui [ 1 ]

Adapté/optimisé pour les machines à air comprimé (hors ligne) (comme celles qu'utilise Ed Snowden).

Oui (Vous pouvez télécharger les applications et les mises à jour hors ligne)

Oui (le support P2P permet des installations et des mises à jour hors ligne)

Peut stocker et exécuter des applications à partir d'emplacements non standard tels que des partages réseau, des CD-ROM, etc.

tbd

Oui (nécessite une configuration) [ 1 ]

Distribution des applications

Fonctionnalité

AppImage

Snap

Flatpak

Repo central / Annuaire

AppImageHub

Snap Store

FlatHub

Entièrement décentralisé, sans gardiens centraux.

x : Non (un seul app store dominant) [ 1 ]

Dépôts d'applications individuels

x : Non (non stocké dans les référentiels)

x : Non (vous ne pouvez avoir qu'un seul repo par appareil)

Peut avoir plusieurs versions en parallèle (y compris les versions historiques)

Oui (nombre illimité de versions arbitraires)

Oui (un par canal)

Oui (toute version disponible dans OSTree peut être installée en parallèle)

Une fois l'application installée, il est toujours possible de la copier facilement sur une autre machine (par exemple, la partager localement avec un ami).

Oui (une application = un fichier ; il n'y a pas d'"installation", l'application est donc toujours sous la même forme).

Oui (mais il faut aussi copier les snaps dont il dépend)

Oui (vous pouvez utiliser flatpak create-usb pour copier sur une clé USB)

Mises à jour des applications

Fonctionnalité

AppImage

Snap

Flatpak

Mécanisme de mise à jour

Mise à jour de l'image de l'application

De Repo

De Repo

Mises à jour des deltas binaires

Oui (en utilisant zsync sans avoir besoin de générer des deltas à l'avance)

Oui (uniquement si vous utilisez un service privé côté serveur qui doit générer les deltas)

Oui (en utilisant OSTree pour fournir des mises à jour atomiques)

Les applications peuvent être auto-actualisées

Oui ( l'utilisation d'informations intégrées )

Support des distributions Linux

Fonctionnalité

AppImage

Snap

Flatpak

La première version d'Ubuntu supportée

Ubuntu 10.04

Ubuntu 14.04

Ubuntu 16.04

La plus ancienne version d'OpenSUSE supportée

OpenSUSE 11.3

Saut 42,2

Leap 42.1

La première Fedora supportée

Fedora 12

Fedora 24

Fedora 23

La première version de Debian supportée

Debian 6

Debian 9

Debian 9

Le premier CentOS supporté

CentOS 6

CentOS 7.6

CentOS 7

Fonctionne sur Ubuntu prêt à l'emploi

x : Non

Fonctionne sur OpenSUSE prêt à l'emploi

x : Non

à confirmer

Fonctionne sur Fedora prêt à l'emploi

x : Non

Fonctionne sur Debian prête à l'emploi

x : Non

à confirmer

Fonctionne sur CentOS prêt à l'emploi

x : Non

Systèmes vivants (par exemple, Live ISO, Live USB, Live CD, Live network boot)

Full

Partiel (à partir de la version 18.04, mais il est limité par une limitation du noyau et "une douleur à travailler avec, nous passons presque zéro temps avec cela" selon un développeur Canonical)

Partiel (La session doit être redémarrée pour que les exportations soient récupérées)

Peut fonctionner sur Chrome OS (Crostini)

Oui (Chrome OS 73)

Oui (Chrome OS 73)

Objectifs et gouvernance

Fonctionnalité

AppImage

Snap

Flatpak

Indépendant de tout distributeur particulier

Oui (un projet communautaire)

x : Non (une initiative de Canonical)

Oui ( un projet communautaire )

Non lié à l'analyse de rentabilité d'une entreprise dominante

x : Non (essentiel pour l'activité de Canonical)

x : Non

Réalisé pour réduire l'influence des distributions sur l'écosystème Linux de bureau en tant que gardiens centraux.

x : Non

Oui ( Tout le monde peut héberger son propre repo )

Conçu pour donner du pouvoir aux développeurs d'applications et aux utilisateurs finaux

Oui [ 1 ]

Oui [ 1 ]

Travailler à l'unification de la plateforme Desktop Linux plutôt que de continuer à diviser la base d'utilisateurs en différents écosystèmes de distribution.

Oui (par en soulignant les questions essentielles qui doivent être résolus ensemble)

x : Non (en plaçant effectivement le snap de base d'une autre distribution sur la distribution sous-jacente)

x : Non (en plaçant effectivement une distribution Yocto sur n'importe quelle distribution sous-jacente)

Taille de l'application

tr>

Fonctionnalité

AppImage

Snap

Flatpak

Le stockage des applications sur le disque reste comprimé à tout moment.

oui

oui

x : Non (le côté serveur est compressé, le côté client ne l'est pas) [ 1 ]

Les applications utilisent beaucoup moins d'espace disque que les applications "installées traditionnellement".

oui

oui

tbd

Exemple : Taille du téléchargement de LibreOffice ( source )

~248 MByte

463 MByte [mise à jour de juillet 2020]

543 MByte

Avant de télécharger, connaissez exactement la taille à télécharger et à stocker sur le disque.

Oui (une application = un fichier)

x : Non [Ne prend pas en compte les snaps de plateforme [ 1 ]]

x : On ne peut qu'estimer le pire des cas à cause de la déduplication.

Vitesse d'exécution

Fonctionnalité

AppImage

Snap

Flatpak

Heure de démarrage de LibreOffice ( source )

3 secondes

13 secondes

7 secondes

Format du paquet

Fonctionnalité

AppImage

Snap

Flatpak

Le format du fichier est normalisé par un organisme officiel de normalisation.

x : Non (mais intéressé par la chose une fois le format stabilisé)

Oui (Créé par le format Snap TOB[ 1 ])

x : Non (bien que le support expérimental de l'OCI existe)

Inspiré conceptuellement par

macOS .app à l'intérieur de .dmg (remontant jusqu'à NeXT) ; Rox AppDir

Cliquez sur (paquets Ubuntu Touch)

klik (ancien nom d'AppImage)

Base de code du projet

Fonctionnalité

AppImage

Snap

Flatpak

Les contributeurs ne doivent pas signer de CCT

x : Non

Développé depuis

2004 (alors appelé klik )

2010 (prédécesseur appelé Click Packages)

2013 (prédécesseurs appelés Glick Glick2 y xdg-app )

88voto

Magma Points 1048

Snaps ont été créés par Canonical pour Ubuntu. Les principaux avantages de snaps sont :

  • Indépendance vis-à-vis des dépendances - toutes les bibliothèques et dépendances sont incluses dans le paquet. Cela permet également d'avoir plusieurs versions d'un même programme.
  • Sandboxing - les snaps utilisent AppArmor modifié pour sandboxer les applications.
  • Mises à jour delta - les snaps devraient également permettre les mises à jour delta

Le principal inconvénient des snaps est que le logiciel ne peut utiliser que les bibliothèques incluses dans son paquetage. Il s'agit d'un risque potentiel pour la sécurité, car l'auteur du paquet doit maintenir toutes les bibliothèques à jour.

Les snaps peuvent actuellement fonctionner dans 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, les serveurs, les téléphones, l'IoT et les routeurs.

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

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

AppImages sont développés par Simon Pierre. Comme dans snaps ou Flatpak, le paquet inclut toutes les bibliothèques nécessaires pour exécuter le programme. Les programmes AppImage ne sont pas sandboxés et ils ne nécessitent pas de droits root pour fonctionner. Selon le site web du projet, AppImages devrait fonctionner sur Arch Linux, Centos, Debian, Fedora, OpenSUSE, Red Hat Linux et Ubuntu.

22voto

pktiuk Points 758

J'ai trouvé une comparaison intéressante des performances (CPU+Mémoire) pour ces systèmes de conditionnement.

VLC

VLC

LibreOffice enter image description here

Gimp

enter image description here

Source : https://verummeum.com/portable-package-formats/

21voto

phone911 Points 1

N'oubliez pas l'essentiel, est-ce une source ouverte ?

AppImage

Source ouverte Client Oui
Serveur open source Oui

Snap

Source ouverte Client Oui
Serveur open source Non

Flatpak

Source ouverte Client Oui
Serveur open source Oui

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X