• [^] # Re: Bien d'accord !

    Posté par (site web personnel, Mastodon) . En réponse au journal Snap, Flatpak, Packagekit : c'est quoi ce bordel ?. Évalué à 10. Dernière modification le 18 octobre 2019 à 11:54.

    Avec 20 ans de métier spécialisé sur UNIX puis Linux, je pense maîtriser un peu les archi système... Fais un peu attention à qui tu t'adresses quand tu fais ce genre de remarques...

    Expérience et compétence sont deux choses différentes.

    Je considère effectivement que c'est "pourri", si on a inventé les bibliothèques partagées, c'est justement pour éviter ces horreurs.

    Et cela a fonctionné, jusqu'à un certain point.

    Voici un scénario typique:

    • un développeur d'applications a testé son application avec une version A de bibliothèque
    • un autre développeur d'applications a testé son application avec une version B de la même bibliothèque
    • un mainteneur de distribution veut intégrer ces deux applications. Il va donc chercher à utiliser la même version pour toutes les applications utilisant cette bibliothèque.
    • le mainteneur choisit une version unique (A, B, voire C)
    • malgré les tests du mainteneur et de l'équipe d'assurance qualité de la distribution, il y a peut être des bugs spécifiques à la version de bibliothèque utilisée

    Par conséquent, l'utilisateur est mécontent car:

    • il ne peut bénéficier de la dernière version de ses applications préférées tant qu'elles n'ont pas été packagées pour sa distribution
    • même si elle est packagée, elle ne fonctionnera peut être pas à 100% avec la version de bibliothèque choisie par le mainteneur
    • il va remonter des bugs au développeur de l'application

    De plus, les développeurs d'applications sont mécontents, car:

    • ils sont inondés de bugs remontés par les utilisateurs, mais pour lesquels ils ne peuvent rien, car dus aux choix des mainteneurs de distributions, et ce pour chaque distribution où cela pose problème.
    • ils ont fait une application qui fonctionne, mais voient leur réputation être entachée par des bugs ou incompatibilités des bibliothèques, et des choix des mainteneurs de distributions
    • on leur remonte des bugs sur des applications obsolètes car ils ont déjà sorti la version n+1 mais les distributions sont restées sur la version n.

    Enfin, le mainteneur est mécontent car:

    • packager des logiciels ça prend du temps et on duplique l'effort pour chaque distribution
    • il a des problèmes insolubles à résoudre notamment dû à l'explosion de la matrice de test qui fait que la moindre mise à jour d'une bibliothèque peut casser plein d'applications

    Flatpack et Snap ont été créées pour résoudre ces problèmes:

    • c'est un circuit court: directement du producteur (développeur) au consommateur (l'utilisateur) sans intermédiaire (distribution), par conséquent tu peux avoir la version nightly d'une application avec un Flatpack quelques minutes après qu'elle a été compilée
    • les testeurs peuvent remonter des bugs sur la dernière version facilement (au lieu de galérer à recompiler cette dernière version non fournie dans les backports de leur distribution)
    • l'application se lancera sans polluer ton système (pas de paquets expérimentaux, pas besoin de déstabiliser ton système)
    • tous les utilisateurs de l'application Flatpack/Snap feront tourner l'application dans la configuration choisie par les développeurs: plus de combinatoire de test, tout les utilisateurs ont une combinaison unique de versions.

    Alors oui, ça prend plus de place sur le disque, mais tu n'es pas obligé d'installer toutes tes applications avec des systèmes de conteneurs de ce type. Toutefois, quand tu as besoin d'un logiciel non fourni par ta distribution, ça change la vie. Si tu suis le développement de certains logiciels en particulier, tu peux utiliser la version stable de ta distribution, et par dessus un Flatpak/Snap de la poignée de ces applications dont tu veux absolument la dernière version stable (si tu veux les dernières fonctionnalités), ou nightly (si tu veux tester au fil de l'eau et remonter des bugs dès qu'il apparaissent).

    On s'oriente de plus en plus vers un système de base construit avec des packages pour ce qui est des composant système, avec au dessus des runtimes intermédiaires, et des applications contenairisées au-dessus.
    Tu peux jeter un coup d'oeil à Fedora Silverblue ou à EndlessOS pour avoir un aperçu de ce futur pas si lointain.

    Je n'ai pas demandé à avoir snap installé sur mon système, ça c'est fait sans mon consentement.

    Je doute qu'on t'ai mis le couteau sous la gorge. Tu as à un moment donné accepté le contrat de licence utilisateur à l'installation de ta distribution qui justement permet cela. Soit tu as directement installé une vesion utilisant snap, soit tu as donné ton consentement explicite autorisant les mises à jour et as migré vers une version utilisant snap.

    Résultat, je me retrouve avec des lib en double/triple/whatever qui me "bouffe" des giga de disque.

    Tout à fait. Mais l'espace disque est bon marché de nos jours, et bien que partager les ressources offre de meilleurs performances (accès cache, etc.), parfois cela est moins prioritaire qu'avoir une application qui fonctionne, ou avoir la dernière version d'application sans avoir à attendre 1 an. Tu n'es pas non plus obligé d'installer toutes tes applications de cette manière: on te donne le choix d'utiliser la version de ta distribution ou la version en conteneur.

    En effet, même si Flatpak ou Snap est sur ton système, tu n'es pas obligé de l'utiliser.