Les deux premières situations sont gérées de manière intelligente.
L'une des fonctionnalités intéressantes évoquées est la prise en charge de la déduplication pour le contenu des packages Snap. Les snaps seront automatiquement dédupliqués des fichiers communs partagés entre les snaps en fonction de leurs hachages de fichiers. Il y aurait une déduplication sur la couche du système de fichiers, une déduplication sur les téléchargements instantanés (avec prise en charge du serveur) et peut-être une déduplication des bibliothèques mappées à partir de l'éditeur de liens. La déduplication est un gros travail et sa mise en œuvre prendra probablement un certain temps, mais c'est néanmoins un objectif intéressant.
Source: http://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Snappy-Deduplication
Quant à la troisième situation, ils ont quelque chose de similaire aux temps d'exécution que vous avez mentionnés:
Il existe trois couches qui composent une machine accrocheuse: la couche système, fournie par Canonical, une couche de frameworks qui étendent le système de base produit par les fournisseurs en collaboration avec Canonical, et un ensemble d'applications accrocheuses, fournies directement par les fournisseurs. Mettre à jour n'importe quel morceau signifie simplement utiliser la nouvelle version d'une image en lecture seule. Revenir à une version précédente est tout aussi simple.
Source: http://www.ubuntu.com/cloud/snappy
Il n'y a pas encore de bonne documentation décrivant les cadres, principalement parce qu'ils semblent encore déterminer les limites de ce qu'est un cadre. Voici un extrait de leur liste de diffusion qui pourrait aider à clarifier les choses.
J'expérimente avec Frameworks pour étendre essentiellement le système de base Snappy par des logiciels et des services dont de nombreux snaps ont besoin mais ne devraient pas être inclus dans tous les snaps en raison de problèmes de mise à jour et de taille. Le meilleur exemple que j'ai pour cela, est le binaire openssl. De nombreux snaps en ont besoin pour générer et valider des clés et des certificats.
L'autre problème que je dois résoudre avec un cadre est l'accès aux ressources à l'échelle du système, notamment les ports. Par exemple, une infrastructure de serveur Web fournirait des moyens pour d'autres snapps d'injecter leur API de service Web et leurs points de terminaison via un proxy inverse dans l'infrastructure exécutant le serveur Web.
On m'a dit sur IRC que j'abusais en quelque sorte du concept de cadre, mais ces deux problèmes reviennent souvent sur mon bureau.
Source: https://lists.ubuntu.com/archives/snappy-app-devel/2015-November/000442.html
Je ne pense pas que les snaps vérifient quelles dépendances sont déjà installées. Il inclut simplement toutes ses dépendances et son exécution (ce qui explique en partie pourquoi le composant logiciel enfichable LibreOffice fait 287 Mo et le flatpak environ 200 Mo).
Les snaps incluent à peu près tout ce dont le logiciel a besoin pour fonctionner. Je ne pense pas que quelque chose soit partagé entre les snaps.
Cependant, lorsqu'un snap est mis à jour, il ne télécharge que les dépendances nouvelles et non le snap entier.
la source
Des éclaircissements supplémentaires sont nécessaires sur la façon dont l'empaquetage par capture gère les dépendances partagées.
Cette déclaration dans l'une des réponses est partiellement vraie, cependant tous les packages d'accrochage installés, à l'exception de l'accrochage principal, dépendent de deux packages, dont l'un est l'accrochage principal.
snapd - qui est installé par défaut en 16.04 et versions ultérieures et peut également être installé en 14.04.
core - (le core snap) qui est automatiquement téléchargé et installé lorsque le premier package snap installé est installé
Tous les packages d'accrochage, à l'exception du noyau lui-même, dépendent de l'accrochage du noyau. S'il y a un problème avec le composant logiciel enfichable de base, certains ou tous les autres composants logiciels enfichables ne fonctionneront pas. Un problème avec le composant logiciel enfichable de base peut être résolu des deux manières suivantes.
Mettez à jour le composant logiciel enfichable de base. Même si cela ne fonctionne pas, les résultats de l'exécution de la commande suivante fourniront des informations supplémentaires qui aideront à résoudre le problème.
Désinstallez le composant logiciel enfichable principal et tous les packages de composants logiciels enfichables, puis réinstallez-les.
la source