Commentaire sur «Snap de Ubuntu, bonne ou mauvaise nouvelle ?»
Ce billet est un commentaire destiné à la page suivante https://blog.karolak.fr/2016/04/13/snap-de-ubuntu-bonne-ou-mauvaise-nouvelle/
Bonjour,
En ce qui concerne la gestion des librairies externes elles sont juste déclarée dans le fichier snapcraft.yaml servant à creer le paquet snap. On y précise la source (github, repos Ubuntu, etc…).
Ex : je veux la lib openssl de tel projet github, ou je veux la dernière lib openssl officielle Ubuntu (apt)
Donc pas besoin de se faire suer avec ça. On se concentre sur notre application.
Et à chaque build, il va chercher les dépendances qu’il faut et les empaquette là où il faut.
Et donc un dev peu aller piocher un bout de machin en node.js sur un projet github, des libs via apt, et y ajouter son bout de trucs en python et builder simplement grâce à la recette snapcraft.yaml
L’avantage, c’est qu'à terme toutes les plateformes ubuntu, du tel au desktop en passant par le cloud et l’IoT sera basé sur ce système de snaps, apportant une plus grande isolation (plus de sécurité), une maj transactionnelle, et une grande modularité.
À ce jour il existe déjà des drones, frigos, robots, services d’IA, cartes de programmation qui utilisent des snaps
Le point important ici est : "à chaque build". Autrement dit : "à chaque mise à jour de l’appli", parce que personne ne refait un build de son appli si elle n’a pas changé.
Le problème se pose donc dans le cas où l’appli n’est pas mise à jour, mais des bibliothèques le sont (pour des questions de sécurité par exemple). Dans ce cas on se retrouve avec une appli qui repose sur une lib trouée, au moins le temps que l’appli change (ou que le développeur se rende compte du problème et décide d’agir). Maintenant multiplie ça par le nombre d’applis, les chances d’avoir un problème de sécurité sur l’une ou l’autre n’est pas négligeable…
Et même si tous les développeurs jouent le jeu et tiennent non seulement leur appli mais également ses dépendances à jour (au moins pour les failles critiques), ça fait beaucoup de mises à jour à faire au lieu d’une seule à chaque nouvelle faille.
Je ne connais pas bien le format Snap, mais peut-être est-il possible de faire des recettes de build intermédiaires, qui contiendraient une partie des dépendances mais s’appuieraient sur des libs partagées pour les parties de sécurité ? Ça rajouterait pas mal de complexité, cela dit.
Dans tous les cas le format est intéressant, et sans aucun doute utile, mais ne semble pas exempt de défauts.