Paquets AppImage, Snap et Flatpak : quels avantages, inconvénients et différences ?
Newer not always better
Le 10 juin 2020 à 10h15
15 min
Logiciel
Logiciel
Ces dernières années, les paquets multi-distributions ont gagné en attractivité sous Linux. Des solutions intéressantes à première vue, mais pas sans contraintes. Nous faisons le point sur les trois principales, de leur concept central à leurs avantages et inconvénients, en passant par leurs différences.
La diffusion de logiciels est depuis longtemps à l’avantage des distributions Linux face à macOS et Windows. Les différents systèmes de paquets sont exploitables aussi bien en ligne de commande que via des interfaces graphiques.
L’utilisateur reste maître de cette utilisation, notamment dans le choix d’inclure des logiciels aux sources fermées ou non, via les fameux dépôts. Ces derniers livrent aujourd’hui aussi bien les applications que les nouvelles versions de l'OS, le noyau Linux lui-même et ainsi de suite. Chacun peut d'ailleurs en créer pour son propre usage ou en les rendant disponibles à tous.
Depuis plusieurs années, un autre type de paquet envahit peu à peu l’espace Linux : le « tout-en-un », basé sur le concept d’image disque ou de conteneur selon les cas. Pour l’utilisateur, le changement se veut transparent, bien qu'il ne le soit pas toujours. Les développeurs, eux, sont encouragés à y passer, chacun vantant les avantages de sa solution.
Canonical est notablement très enthousiaste sur ses snaps... qui font grincer des dents.
Paquets contre paquets
Pour comprendre ce qui différencie ce nouveau type de paquets des anciens, il faut expliquer comment fonctionne la distribution traditionnelle d'applications sous Linux, reposant sur des applications visant une plateforme particulière.
Les paquets contiennent normalement les dépendances nécessaires, c’est-à-dire les ressources dont l’application a besoin pour fonctionner. On pourrait comparer (très) grossièrement aux DLL de Windows quand un logiciel est installé. Les distributions Linux savent depuis longtemps télécharger les dépendances quand celles-ci sont absentes.
Une action facilement visible en ligne de commande : quand on demande par exemple à APT d’installer un paquet, il avertit automatiquement des éléments manquants, précisant qu’ils seront installés au passage.
Cette faculté, ajoutée à l’aspect centralisé des commandes d’installation, a toujours rendu cet aspect nettement plus évident dans sa logique que sur les plateformes concurrentes comme macOS ou Windows. Certes, ces dernières disposent de leurs propres boutiques applicatives, mais il s’agit bien de vendre (idéalement) et de retenir une commission – même si de nombreuses applications sont gratuites – plutôt que de repenser la distribution et l'installation.
Autre gros avantage de la manière de faire sous Linux, la mise à jour automatique gérée par un unique service. Là encore, sur les plateformes concurrentes, soit la boutique s’en occupe, soit le logiciel doit avoir un mécanisme intégré. Une situation qui n’évolue pour ainsi dire pas : la proportion d’applications sur les boutiques d’Apple et Microsoft reste faible.
L'ère des paquets « tout-en-un »
Cela étant, la gestion des paquets sur les systèmes Linux répond aux spécificités de chaque distribution. Les deux formats les plus courants, deb et rpm, ont ainsi leurs particularités et visent des familles d'OS différentes. Le premier est le format adopté par Debian et donc par les dizaines de distributions qui en sont dérivées (dont Ubuntu), tandis que le second est depuis longtemps soutenu par Red Hat et se retrouve notamment dans Fedora et openSUSE.
En outre, cette solution peut rencontrer les mêmes problèmes que d’autres systèmes utilisant des composants communs accessibles aux applications. Il peut y avoir conflit, chaque mise à jour du système ou d’un seul composant devant être testée aussi bien par les développeurs d’un système que ceux d’une application.
C'est là qu'AppImage, Flatpak et Snap entrent en scène. Leur avantage ? Ils fournissent des paquets contenant tout le nécessaire à une application, sans avoir à gérer les particularités de chaque système. Il faut simplement que ces derniers gèrent ces approches, qui se veulent ainsi « agnostiques ».
Elles n’ont cependant pas toutes les mêmes caractéristiques. Elles permettent de régler nombre de soucis potentiels et de se simplifier la vie, mais pas sans coût. De plus, leur pluralité est autant une force qu’une faiblesse. Explications.
AppImage : le plus ancien
AppImage, dans sa forme actuelle, existe depuis 2013. Ce système de paquet est maintenu depuis dans son dépôt GitHub sous licence MIT. Son principal auteur, Simon Peter, n’était pas un novice dans le domaine, puisqu’il avait déjà créé Klik, que l’on peut qualifier d’ancêtre d’AppImage, dès 2004. Le projet fut abandonné en 2011 au profit de PortableLinuxApps, finalement renommé en AppImage en 2013. Son mantra est depuis : « une application = un fichier ».
Le nom résume à lui seul la philosophie du projet : l’image d’une application. Un fichier unique, qu’il suffit de monter puis de lancer, contenant le programme et toutes ses dépendances, même si le format est souple et laisse les développeurs libres d’intégrer ce qu’ils souhaitent. Une situation très comparable aux fichiers DMG que l’on trouve sur macOS.
Chez Apple, une fois l’image montée, on peut prendre l’application et la copier vers une destination, d’où on pourra la lancer. Traditionnellement, on la range dans Applications, mais ce n’est qu’une commodité. L’application se présente comme un fichier unique, en fait une archive contenant toutes les données nécessaires.
AppImage ne réclame aucun accès administrateur. D’ailleurs, il n’y a techniquement aucune installation, puisqu’on se contente de lancer un fichier exécutable. L’application se lance sans avoir à vérifier que les dépendances existent dans le système. Quoi qu’il lui faille pour s’afficher correctement, le développeur y a normalement pourvu. Sans installation, plusieurs versions différentes d’une application peuvent fonctionner côte à côte.
AppImage est très clairement pensé pour la distribution d’applications classiques vers les utilisateurs finaux. On reste sur l’idée d’un format portable, puisque l’image peut très bien être placée sur une clé USB et exécutée telle quelle sur une autre distribution. Pour ceux qui le souhaitent, AppImageKit permet même de fabriquer sa propre image à partir d’une application installée sur sa machine.
AppImaged, le service responsable du bon fonctionnement des paquets AppImage, est présent sur un très grand nombre de distributions, dont Debian, Ubuntu, Fedora, CentOS et openSUSE. Il n’y a pas de dépôt officiel centralisant les versions AppImage des applications, mais le site AppImageHub sert par exemple de concentrateur tiers.
Snap : le mastodonte promu par Canonical
Ubuntu intègre un autre format de fichier tout-en-un, mais conçu différemment et servant des objectifs plus larges. On retrouve l’idée d’une archive contenant une application, mais contrairement à AppImage qui offre une certaine souplesse, un snap contient forcément l’intégralité des dépendances, permettant au logiciel de fonctionner sans vérification.
On reste ainsi sur le principal avantage déjà mis en avant par AppImage : les développeurs n’ont pas à viser de plateforme particulière. Il suffit que le système embarque snapd, le service responsable de la gestion des snaps. Ubuntu et un nombre croissant de distributions l’intègrent. Mais il existe plusieurs différences techniques notables avec AppImage.
Les mises à jour sont ainsi transactionnelles : la nouvelle version peut s’installer pendant que l’ancienne fonctionne encore, les différences étant appliquées au lancement suivant. En outre, dans le cas où une mise à jour introduirait des problèmes, l’utilisateur peut revenir facilement à l’état antérieur.
Il y a donc maîtrise des versions et simplification de l’administration dans ce domaine. Un avantage entrainant un inconvénient : contrairement à AppImage, snapd ne permet pas l’exécution concurrentielle de plusieurs instances d’une même application, y compris de versions différentes. Une fonction expérimentale a été introduite l’année dernière pour permettre les installations parallèles, mais la documentation s’y rapportant n’a pas été mise à jour depuis neuf mois.
Les snaps savent cependant gérer les canaux de distribution. Une application disposant d’un canal bêta spécifique pourra ainsi être installée aux côtés de la version stable, sans que l’une empiète sur l’autre. Snapd permet en outre de prendre des instantanés (snapshots) des snaps en cours d’exécution, via la commande principale snap save
.
L’opération peut être ponctuelle ou automatisée, par exemple pour définir une sauvegarde des états à intervalles réguliers, définis par l’utilisateur. Les instantanés permettent alors de restaurer une application dans un état spécifique.
Mais la plus grosse différence entre AppImage et Snap est sans conteste l’obligation, pour ce dernier, d’exécuter les applications de manière isolée, dans le cas présent une version modifiée d’AppArmor. Les droits de l’application contenue dépendent du niveau défini dans le snap : classic, strict ou devmode. Il y a donc un apport réel de sécurité, puisqu’un logiciel donné n’aura que des interactions très contrôlées avec le reste du système.
Contrairement à AppImage et Flatpak, les snaps sont conçus pour être installés dans toutes sortes d’environnements, notamment les serveurs et les objets connectés (IoT). Canonical a imaginé sa solution comme une technologie transversale permettant de vastes déploiements, quand les autres ont des approches beaucoup plus « desktop-centric ».
Les snaps ne sont pas étrangers à la critique, loin de là. L'isolation, tout d’abord, n'est pas aussi complète qu’on le souhaiterait, nécessitant l’accès à certains composants centraux du système pour fonctionner. En outre, les vieilles applications X11 sont incompatibles. Les snaps sont également très volumineux. La taille des fichiers est souvent multipliée par deux, trois ou quatre comparée à l’équivalent AppImage.
Ce n’est peut-être pas un problème pour nombre de machines, mais pour celles équipées de petits SSD ou les utilisateurs n’ayant pas un débit de téléchargement très élevé pourront se sentir pénalisés.
Le plus important reproche fait aux snaps est cependant lié à leur popularité. Il est vrai que propulsés par la très connue distribution Ubuntu, ils sont assurés d’une bonne visibilité. Depuis, l’intégration de snapd dans d’autres systèmes et l’utilisation de ce format par des acteurs majeurs comme KDE, Google, Microsoft, Mozilla ou encore Spotify l’ont presque transformé en standard de facto, au grand dam d’un nombre croissant de voix.
Deux problèmes majeurs ont été relevés. D’abord la présence, au sein de snapd – le service d’installation et de gestion des paquets snap – de code propriétaire de Canonical, donc source d’agacement dans la communauté du logiciel libre. Ensuite, une crainte de situation hégémonique sur la distribution des paquets, l’éditeur étant suivi de grands noms du secteur.
La situation trouve un parfait exemple de ces tensions dans l’annonce récente par l’équipe de Linux Mint d’une renonciation à installer snapd par défaut dans le système. Pourquoi ? Parce que Canonical n’a pas tenu sa promesse initiale : snapd ne devait jamais être rendu obligatoire pour installer une application. Or, la distribution de Chromium sur Ubuntu passe uniquement par un snap, donc requiert snapd.
Face à cette « trahison », les développeurs de Mint ont décidé de ne plus inclure snapd. Depuis Logiciels, l’interface GNOME servant à installer des applications, on peut toujours voir Chromium, mais il s’agira d’un paquet vide. Son installation affiche un résumé de la situation, l’utilisateur restant libre d’installer snapd s’il le souhaite.
Un changement qui sera effectif dans la version 20, dont la bêta est imminente, basée sur Ubuntu 20.04 LTS. Notez que toutes les applications encapsulées en snap sont disponibles dans le dépôt officiel de Snapcraft.io. Le code open source, sous GPL 3.0, est disponible sur le dépôt GitHub du projet.
Flatpak : un concurrent direct aux snaps
Le fonctionnement de Flatpak se rapproche davantage des snaps que d’AppImage, même si le concept central reste le même. On retrouve un paquet contenant l’application et toutes ses dépendances, le tout reposant sur un mécanisme d'isolation. Là encore, l’application ainsi lancée se passe de droits administrateur.
Le projet ayant abouti à Flatpak se nommait précédemment xdg-app. Il fut écrit en 2015 par Alexander Larsson – alors développeur chez Red Hat sur la base d’une idée formulée plus d’une décennie avant par Lennart Poettering. Larsson était déjà familier avec ce type de développement, puisqu’il avait suivi de près le projet Klik, ancêtre d’AppImage. Il préférait cependant l’idée d’une exécution isolée de l’application.
Les forces de Flatpak sont nombreuses et en partie similaires à snap (tout comme certaines de ses faiblesses). Les flatpaks se distinguent cependant par leur intégration visuelle, la technologie ayant été pensée dans une optique d'utilisation via une interface graphique (GUI) plutôt qu'en ligne de commande (CLI), tout particulièrement GNOME et KDE.
Tout comme les snaps, ils sont en théorie insensibles aux changements de versions du système. Mais les développeurs ont un peu plus de libertés dans les éléments qu’ils souhaitent intégrer dans le paquet, de même que le choix de le distribuer eux-mêmes, en dépit de l’existence d’un dépôt officiel : FlatHub. Une différence de taille avec les snaps centralisés.
Par défaut, une application Flatpak n’a accès à presque rien : données personnelles, réseau, autres processus, etc. Pour débloquer ces capacités, les développeurs doivent prévoir des Portals, littéralement des portes vers des composants du système. Aucun Portal ne peut être ouvert sans accord explicite de l’utilisateur.
Souvent, les développeurs n’ont cependant rien à faire, car de nombreux frameworks intègrent déjà cette gestion, comme GTK3 ou Qt5. Contrairement à Snap, l’exécution de plusieurs versions d’une même application est possible. L'isolation prend appui sur Bubblewarp, mais la sécurité de Flatpak a été sévèrement critiquée, sur plusieurs aspects.
Les applications les plus populaires ont ainsi souvent de nombreuses autorisations actives par défaut. Ensuite, l’application des correctifs de sécurité dans le dépôt central serait trop lente. Est également critiqué le classement comme « mineure » d’une faille de sécurité qui permettait un accès root (local) complet, au sein même du framework de gestion.
On pourrait en outre critiquer la taille des paquets, comme pour les snaps. Selon les applications, l’une ou l’autre version sera la plus volumineuse. Il faut donc tenir compte là aussi d’un éventuel manque de place avec la multiplication des applications. Les sources du projet sont disponibles dans ce dépôt GitHub.
Le futur de la distribution ?
Chaque technologie a ses qualités et défauts. Chacune semble plus adaptée à certains scénarios que les autres. Aucune cependant ne peut prétendre à l’universalité. Il reste probable que les snaps, poussés par Canonical, resteront pendant un temps la solution la plus visible. Ne serait-ce que parce qu’elle permet à de nombreux éditeurs de proposer un seul paquet à destination de toutes les distributions Linux intégrant snapd.
Mais l'entreprise va devoir être vigilante. En prenant notamment soin de snapd, car elle est déjà revenue sur sa promesse de ne pas le rendre obligatoire pour l’installation d’applications sur Ubuntu, donc les distributions qui le reprennent. Linux Mint n’a beau être « qu’un » système dérivé, il est assez connu pour que le problème soit sous les feux des projecteurs. Canonical opérant dans le monde du logiciel libre, un passage en force pourrait provoquer une vive réaction générale.
Il n’est pas certain non plus que les utilisateurs soient directement témoins des avantages portés par ces solutions. Cela reste des applications lancées, la plupart du temps, depuis une grille. Ils pourraient cependant s’agacer de voir la consommation d’espace disque exploser avec l’installation d’applications.
D’un point de vue technique, ces types de paquets offrent de réels avantages dans la distribution, ne serait-ce justement que parce qu’ils la simplifient pour les éditeurs. Le concept d’exécution de type conteneur est là aussi – et dans l’absolu – très intéressant sur le plan de la sécurité, mais pas sans défaut.
Le projet le plus abouti semble toutefois toujours AppImage, sans doute parce qu’il est aussi le plus ancien. Les développeurs ont le choix d’intégrer ou non un mécanisme de sandbox, et tout ou partie des dépendances, sans modifier le concept central d’un fichier par application.
Dans la bataille, qui ne fait que commencer, l’utilisateur devra rester au centre des préoccupations. Dans ce contexte, certains risquent par exemple de ne pas comprendre la décision de Linux Mint, puisque l’expérience d’utilisation va directement en pâtir. Les décisions de Canonical seront à suivre de près.
Paquets AppImage, Snap et Flatpak : quels avantages, inconvénients et différences ?
-
Paquets contre paquets
-
L'ère des paquets « tout-en-un »
-
AppImage : le plus ancien
-
Snap : le mastodonte promu par Canonical
-
Flatpak : un concurrent direct aux snaps
-
Le futur de la distribution ?
Commentaires (67)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 10/06/2020 à 12h03
Evoquer aussi les images de containers (type Docker), intégrant eux aussi toutes les dépendances nécessaires à une application, aurait-il été hors sujet ?
Le 10/06/2020 à 12h13
Snap, c’est 10⁄15 secondes pour lancer la calculatrice (sur un SSD). Contre 1 pour le deb.
Donc " /> snap
Le 10/06/2020 à 12h27
Le 10/06/2020 à 12h38
Parce que du point de vue dev, c’est tout bénef.
On fait un seul paquet et ça marche sur toutes les distribs qui supportent snap.
C’est la facilité virsus les performances. :/
Mais pour l’utilisateur en dehors du cas évoqué d’éviter les ppa, c’est une perte de perf vraiment énorme en plus de la place prise. :/
Le 10/06/2020 à 13h19
On ne peut pas avoir le meilleur des deux mondes en même temps, il faut faire un choix.
Soit tu fournis tout en un pour que cela soit simple et universel, soit tu découpes tout en petit morceau très modulaires (les paquets) mais avec la gestion des dépendance qui est complexe derrière.
D’autant que tout n’est pas qu’une question de format. Même si par exemple Fedora et Debian utilisaient tous les deux des RPM, un RPM ne serait pas compatible pour les deux car il y a d’autres éléments :
* Convention de nommage (le paquet “kernel” chez Fedora c’est le noyau Linux, alors que Debian a le paquet “linux” pour cela) ;
* Le découpage des paquets retenus, certaines distributions ont un découpage plus fin des paquets (plus ou moins de modules activés et installés par défaut)
* Le choix des options de compilation retenues qui peuvent impacter l’ABI d’un paquet ;
* Le choix des versions des paquets, essayer de faire tourner un logiciel à sa dernière version avec une bibliothèque de base pas à jour depuis longtemps, cela pose des soucis de compatibilité.
Et ces problématiques sont globalement insolubles avec un gestionnaire de paquet classique.
L’article est pas mal, mais il oublie de mentionner un point fort de Flatpak : les runtimes.
En gros les bibliothèques assez communs (libc, Qt, GTK, KDE, GNOME, OpenSSL, etc.) sont dans des runtimes versionnés. Donc plutôt que Firefox embarque dans son Flatpak les bibliothèques communes à de nombreuses applications, il va dépendre d’un runtime.
L’avantage est d’améliorer la sécurité et d’optimiser les ressources en partageant les bibliothèques très communes. L’inconvénient est qu’un runtime c’est lourd (en général 100 Mio à plusieurs Gio). Donc si on n’a qu’un Flatpak qui utilise Qt, on va via ce runtime installer de nombreuses bibliothèques en trop. Mais si on installe beaucoup d’applications comme ça (par exemple els applciations KDE) on se rapproche de la taille qu’on avait avec un gestionnaire de paquet classique.
La compatibilité est conservée grâce au versionnement, on peut avoir un runtime en plusieurs versions en même temps si nécessaire. Tout en mutualisant un maximum les ressources communes.
Le 10/06/2020 à 13h28
Le 10/06/2020 à 13h42
Je n’ai jamais utilisé ce mode d’installation de logiciel, donc je vais peut-être dire une connerie. De ce que je comprends, cela ressemble au .exe sous Windows. Avec ces systèmes (snap, flatpak, appimage), les bibliothèques sont incluses dans le paquet. Mais du coup, si une faille de sécurité est découverte dans l’une des bibliothèques empaquetée, il faut installé un nouveau snap/flatpak/appimage qui contient une version à jour de la bibliothèque. A moins qu’il y ait un système de mise à jour intégrée dans ces technologies.
Avec le système traditionnel (deb/rpm), vu qu’une bibliothèque est utilisée par tous les logiciels empaquetés par la distribution, si une faille existe dans une bibliothèque, il suffit de mettre à jour le paquet de la bibliothèque et toutes les logiciels qui utilisent cette bibliothèque seront automatiquement protégés.
Le 10/06/2020 à 13h48
En tout cas les Flatpak et Snap ont le concept de dépôt pour mettre à jour les logiciels.
Et les Flatpak avec les runtime peuvent partager des bibliothèques entre elles pour limiter le besoin en maintenance de ce genre bien qu’elle soit plus importante.
Ne pas oublier aussi le revers des paquets, en théorie avoir une bibliothèque commune permet de mettre à jour une fois pour tout le monde. Mais produire et tester cette mise à jour n’est pas triviale car on doit s’assurer que tous les logiciels qui en ont besoin ne seront pas cassés par cette MaJ. Elles ont rarement été testée en amont avec la version choisie par la distribution et il n’est pas rare de devoir faire des correctifs manuels pour essayer de résoudre ces régressions.
Le 10/06/2020 à 14h15
Le 10/06/2020 à 14h33
Le 10/06/2020 à 14h35
dnf n’est que sur Fedora non ? sur CentOS c’est toujours yum il me semble (ou alors c’est moi qui utilise toujours yum " />)
Le 10/06/2020 à 14h40
Sur les dernières version c’est DNF.
Mais il reste la commande yum qui permet de conservé une compatibilité.
Le 10/06/2020 à 14h40
Sur la V7 c’est toujours yum.
Sur la V8 il me semble que c’est bien passé à DNF. " />
Le 10/06/2020 à 15h00
snap, flatpack, & co, c’est une façon d’émuler l’édition de lien statique avec des bibliothèques dynamiques… retour de 30 ans en arrière.
Le 10/06/2020 à 15h02
> D’un point de vue technique, ces types de paquets offrent de réels
avantages dans la distribution, ne serait-ce justement que parce qu’ils
la simplifient pour les éditeurs
Je ne suis pas sur que cela simplifie beaucoup les choses. On embarque tout, les mises à jour de sécurité sont toutes à refaire à chaque fois sur toutes les lib embarquées. Comme on ne distribue qu’avec un choix sur les versions pour que les tests unitaires passent, on fait bien moins les mises à jour. Le code est au final bien moins portable car ne tourne qu’avec certaines versions. Cela ne pousse pas à la rétrocompatibilité des bibliothèques (monde js dans lequel plonge aussi pas mal Python ces derniers temps).
Au final, on gagne du temps ici mais code moins robuste, on en perds là.
Faire un paquet .deb pas hyper clean est SUPER simple, en gros on tar.gz son arborescence, un fichier de control et hop c’est finit. Automatiser cela est complètement trivial !
Le 10/06/2020 à 15h06
Ce n’est présent que sur Ubuntu. Flatpak est bien plus avancé et abouti que Snap.
Le 11/06/2020 à 12h22
Clairement en dehors des cas exotiques risquant de foutre le dawa dans mon système, je ne trouve aucun intérêt à ces paquets en tant qu’utilisateur.
Pour les devs d’accord, mais est-ce que ça ne va pas aggraver le problème de la fragmentation des dépendances sous couvert de le résoudre (les multiples versions de python par exemple) ?
Le 11/06/2020 à 12h48
Le 11/06/2020 à 16h32
Si tu as lu le manuel, tu peux même mélanger les versions. Dans la pratique, je ne sais pas si c’est très utilisé. Personnellement je ne l’ai pas fait depuis des années. Quand (rarement) je veux un truc bleeding edge sur Debian stable, je compile moi même pour virer un max de dépendances inutiles, je trouve ça plus simple.
Le 12/06/2020 à 05h24
Uhm, il y a une phrase sous windows “IE, pour installer Firefox, ça marche”
Sous Gnu/Debian & Ubuntu c’est “FireFox à jour sans te prendre la tête, Snap ça fonctionne(mal)”
Le 12/06/2020 à 05h35
Le 12/06/2020 à 11h50
Le 12/06/2020 à 12h23
La dessus, je te rejoins. Il est naïf de penser que les logiciels sont maintenus ad vitam aeternam.
Le nombre de logiciels qui ne sont plus du tout développé est énorme.
Malheureusement, un peu comme pour l’évolution des espèces, on à une vue sur les succès, pas sur les échecs.
Bien souvent, des petits logiciels, comme tu le dit de niche, sont développé par 1 gars sur son temps libre. Le jour où ils décident d’arrêter, le nombre d’utilisateur qui sont prêt et capable d’assumer le flambeau pour reprendre le développement est vite réduit. Si le mec a arrêté, c’est qu’il y a peut être une raison, et entre reprendre un truc, et le garder sur les rails à bout de bras, ça peut être très vite rédhibitoire. On se retrouve du coup avec parfois des fork, et souvent ses fork sont aussi très vite abandonné.
J’ai souvenir d’un projet “moyen” de lecteur audio basé sur le moteur de firefox : songbird. Le logiciel n’a pas autant décollé que prévu, même si Philips l’avait ajouté dans ses baladeurs MP3, le projet a été totalement abandonné en 2013, et le fork (Nightingale) lui s’est arrêté en 2014. Même la doc Ubuntu dit que c’est mort pour l’installer.
Le 12/06/2020 à 12h53
Merci pour la qualité de ta réponse.
Je pense que t’as plutôt bien résumé la situation.
Et oui, en effet, l’exemple Win32, c’est touchy de ma part.
J’ai pas vraiment grand choses à ajouté au sujet.
En effet le libre a ses limites,
D’ailleurs c’est la gestion des dépendances qui pose problèmes généralement.
Dans la pratique j’avoue que ce genre de paquet est plutôt interessent.
D’ailleurs, j’utilise Snapd ( malheureusement )
Cependant mon ethique, m’irrite le CLUFF.
L’aspet Linux Monilithique m’irrite le systemd, snapd et autres
L’aspet JeSaisPasConf’ m’irrite la compréhension de se que je fait.
Sans compter que la configuration de ce genre de paquet est largement complexifié et exotique je trouve. ( ou que pour snapd peut-être. )
En effet, je comprend la volonté de pouvoir facilement lancer une application depuis le maximum de distrib’,
Mais ça se fait non sans mal, et au prix d’une “Oppression” du Snapd omnipresent, forcent dans la pratique, le maximum de developpeurs à migrer vers ce genre d’outils.
MAIS, dans ton cas de RIP CD, ça aurait vraiment aidé !
C’est jamais facile ce genre de question, et l’ethique, c’est personnel, donc j’irai pas plus loin sur le sujet,
sachant que sur le coups, j’ai fait le choix de virer le maximum de logiciel proprietaire.
Je pense pas qu’on est les même motivations ( sans “jugement” ) sur le sujet, c’est plutôt cohérent
que nos avis sois un peu divergent..
Le 12/06/2020 à 14h27
Si snapd et la politique de Canonical te donnent des boutons, c’est peut être le moment de tester d’autres distributions (Fedora, Manjaro…) " />
Le 12/06/2020 à 14h36
hé hé, un collègue me motive à passer sur NixOS, la distib’ la moins overkill ! " />
Actuellement sous GNU/debian, mais j’ai bien aimé Fedora.
Le 13/06/2020 à 15h42
Perso je ne suis pas friand de cette approche pour les programmes du quotidien… Quand je vois que désormais le moindre logiciel fait 15 tonnes parce qu’il est développé en langage Web, utilise le moteur de Chromium, et que chacun se sent obligé d’installer SON runtime pour la quinzième fois, j’ai l’impression qu’il y a un échec quelque part.
(le RPM de Visualcode Studio fait 89Mo, sérieusement ! Le setup Windows de Notepad++ fait 4Mo !!)
En fait j’ai l’impression qu’il y a une forte divergence d’opinion entre le hardware dont on mutualise et rationalise le plus possible les ressources pour ne pas avoir de puissance inexploitée. Et derrière le software qui a pris du bide pour des mauvaises raisons.
Perso j’adore la containerisation et son orchestration qui va avec (et l’approche aussi des packages présentés dans l’article).
J’adore les briques de déploiement qui permettent de monter from scratch tout un environnement en quelques minutes (c’est mon métier en même temps de les concevoir… " /> ). Mais j’aime pas lorsque les technos qui le permettent sont utilisées à mauvais escient, par paresse, ou parce que le décideur ne voit pas plus loin que le bout de son projet.
J’ai encore en tête une boîte de dev qui livre son appli avec une image Docker de Tomcat et le WAR à côté parce que le client a demandé que ce soit du Docker. Pour faire du Docker. Parce qu’ils ont demandé à faire du Docker.
Docker avait zéro intérêt dans l’histoire car sous exploité, l’image Tomcat n’était jamais mise à jour, et le Linux qui l’hébergeait ne faisait que ça. Mais ils ont fait du Docker, GG.
Le 10/06/2020 à 23h36
Le 11/06/2020 à 01h04
Le 11/06/2020 à 05h58
Le 11/06/2020 à 07h51
Oui bien sur. Suffit de “binder” la socket X11 dans le container. J’ai mon eclipse qui tourne dans un docker par exemple.
Le 11/06/2020 à 07h59
Le 11/06/2020 à 08h07
Super, merci de la réponse, ça peut m’aider sur des cas problématiques (des projets C++ avec plein de dépendances ch… à installer " /> )
Le 11/06/2020 à 08h15
Le 11/06/2020 à 08h24
Le 11/06/2020 à 09h04
Le 11/06/2020 à 09h35
Le 11/06/2020 à 09h36
IL y a quand même une légère différence, je n’ai testé “que” sur un 6200U avec un ssd, mais sur un logiciel comme firefox c’est quand même légèrement plus long que le deb officiel.
Le 11/06/2020 à 09h56
Le 11/06/2020 à 11h56
Il semblerait que ce soit enfin le cas, j’ai remarqué à plusieurs reprises qu’un “dnf rm ” proposait de supprimer également les dépendances inutilisées.
Le 11/06/2020 à 12h02
Le 11/06/2020 à 12h09
Flatpak permet d’avoir les deux, justement. ;)
Mais avec son coût propre.
Le 11/06/2020 à 12h14
On verra bien dans quelques années, lorsqu’il commencera à avoir des logiciels à l’abandon ou autre " />.
Le 10/06/2020 à 15h17
A noter que les sources du serveur snap ne sont pas libre et donc pas de possibilité d’y héberger son propre dépôt. C’est complètement centralisé. On a là un équivalent aux stores mobiles.
Là où Flatpak, il est tout à fait possible d’avoir plusieurs dépôts configurés sur sa machine (comme les dépôts apt/rpm actuels) et donc d’héberger sa propre instance.
Le 10/06/2020 à 15h54
À voir si la gestion de paquets à la mode Nix décolle…
https://nixos.org/
https://linuxfr.org/news/gestion-de-paquets-et-devops-avec-nix-tour-d-horizon-sur-un-cas-concret
https://linuxfr.org/users/nokomprendo-3/journaux/flatpak-et-nix
Le 10/06/2020 à 16h05
Le 10/06/2020 à 16h50
Le 10/06/2020 à 17h20
Entre Snap et Flatpak d’un côté, Nix et Guix de l’autre, je pense qu’on progresse dans le bon sens vers des applications containérisées et une meilleure gestion des dépendances sans conflit. Le prochain travail est sur la déduplication des dépendances des distributions de logiciels, qui sera facilitée si on intègre ça avec Nix ou Guix (par exemple avec des dépendances signées et des builds reproductibles, pouvant être installées depuis plusieurs sources).
Le 10/06/2020 à 17h32
Le 10/06/2020 à 17h52
Le 10/06/2020 à 18h21
Nope, Flatpak ne monte aucun image
Le 10/06/2020 à 18h25
Sinon, point de vue temps de lancement, avec Flatpak je ne vois pas vraiment de différence (testé avec GIMP installé par flathub et par le dépôt Fedora). Mais peut-être que c’est dû au fait que mon PC est relativement puissant.
Le 10/06/2020 à 18h30
Pour expliquer le concept, je fais souvent le parallèle avec les applications mobiles qui demandent telles ou telles permission à l’utilisation (appareil photo, fichiers, contacts, etc)
Le 10/06/2020 à 18h36
Le 10/06/2020 à 20h14
Pour docker, pas sûr que ça soit super adapté à des applis graphiques locales. Si quelqu’un connaît bien docker ici, à part pour déployer des services via le réseau, est-ce qu’on peut lancer une appli graphique depuis un container docker (genre, j’ai un programme Qt/OpenGL, je peux le dockeriser et en sortir quelque chose) ?
Le 10/06/2020 à 20h22
Oui, c’est tout l’objet d’ailleurs de Fedora Toolbox de configurer des images podman (compatible avec Docker) pour rendre cela possible.
Mais ce n’est pas trivial de le faire proprement (configurer DBus, l’accès au /home, configurer la session graphique, etc.). D’où l’existence d’un tel outil.
Le 10/06/2020 à 20h55
Le 10/06/2020 à 21h34
Le 10/06/2020 à 21h45
Le 10/06/2020 à 10h38
Bon sinon, APT et YUM, c’est pas si mal, non ? N’y a t-il pas des pistes à explorer pour faciliter les soucis de dépendances, tant côté éditeur que côté user ?
Le 10/06/2020 à 10h47
Je préfère de loin apt et yum mais pour quelques applis un peu exotiques ce genre de mécanisme est sympa pour éviter d’avoir à pourrir son système. Mais je ne vois d’intérêt que pour les cas à la marge et pas pour un système généralisé.
Le 10/06/2020 à 11h08
Bonjour plusieurs choses non évoqués dans l’articles et importantes à mon sens:
* Flatpak au contraire de snap permet la mutualisation des lib.
En gros si j’installe firefox + thunderbird sous flatpak, les libs en commun ne sont installées qu’une seule fois.
Au contraire sous snap, firefox aura ses libs ET flatpak aura ses libs, donc ça prend encore plus de place.
Mais même sans ça pour avoir une idée de la place prise, un émulateur gba en flatpack peut prendre plusieurs go… Oui oui!!!
* Autre soucis, les paquets snap (je ne sais pas pour flapak?) entrainent plein de points de montages qui polluent. il suffit de faire un fdisk -l après avoir installé des snap pour comprendre…
Une foule de /dev/loop….
* Et un point non négligeable qui n’est pas vraiment évoqué et qui est pourtant LE GROS point noir de toutes ces solutions: Le temps de lancement.
Un paquet snap c’est plus du double de temps temps de démarrage d’un paquet natif deb/rpm…
Il suffit de comparer le temps de démarrage de firefox/chromium pour que ça saute aux yeux… Et ce même sur une machine correcte à base de ryzen + SSD NVME…
C’est totalement rédhibitoire pour moi!
Flatpack fait légèrement mieux (oui oui même que snap sur ubuntu…), mais ça reste perceptible.
Sans compter que les deamon snap/flatpak impliquent une charge mémoire de 100mo en plus. Donc sur une config limite ça peut poser problème…
Pour moi ces deux solutions ne doivent être utilisées que pour éviter des PPA, c’est là toute leur force, mais pour une application qu’on utilise tous les jours comme un navigateur, c’est affreux…
Le 10/06/2020 à 11h14
Le 10/06/2020 à 11h16
L’isolation imposée par snapd peut paraître bien mais est devient problématique quand on ne la souhaite pas. Les applications n’ont plus accès à certaines ressources, vivent seules dans leur coin et deviennent difficiles à intégrer dans l’environnement. Je me suis fait échauder 2 ou 3 fois. Maintenant je privilégie plutôt AppImage qui est certes plus basique, mais plus efficace en pratique.
Et, dans tous les cas, je n’utilise ce type de solution qu’en dernier recours, quand il n’est pas possible de faire autrement.
Le 10/06/2020 à 11h35
Merci pour l’article, j’ai appris beaucoup de choses.
Je vois l’avantage côté dev et admin sys mais côté utilisateur je vois beaucoup de point rebutant et très peu d’avantage.
Et de manière générale, on sacrifie l’optimisation au nom de la simplicité et de la sécurité.
Le 10/06/2020 à 11h39
Je plussoie Burn2, les snaps ont un temps de chargement beaucoup plus longs qu’en natif gestion de paquet genre apt, ça peut aller de x2 à x5 pour certaines applis avec beaucoup de dépendances.
Le 10/06/2020 à 11h40
PC-BSD à son époque avait aussi le même type d’approche avec les fichiers PBI.