Die ersten beiden Situationen werden auf clevere Weise behandelt.
Eines der interessanten Features ist die Deduplizierungsunterstützung für Inhalte in Snap-Paketen. Snaps werden automatisch von gemeinsamen Dateien dedupliziert, die zwischen Snaps basierend auf ihren Datei-Hashes geteilt werden. Es würde eine Deduplizierung auf der Dateisystemebene, eine Deduplizierung bei Snap-Downloads (mit Serverunterstützung) und möglicherweise eine Deduplizierung von zugeordneten Bibliotheken vom Linker geben. Die Deduplizierung ist ein großes Arbeitselement und wird wahrscheinlich eine Weile dauern, bis sie vollständig implementiert ist, aber es ist dennoch ein interessantes Ziel.
Quelle: http://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Snappy-Deduplication
Die dritte Situation ähnelt in etwa den von Ihnen genannten Laufzeiten:
Eine Snappy-Maschine besteht aus drei Ebenen: der von Canonical bereitgestellten Systemebene, einer Ebene von Frameworks, die das von Anbietern in Zusammenarbeit mit Canonical erstellte Basissystem erweitern, und einer Reihe von Snappy-Anwendungen, die direkt von Anbietern bereitgestellt werden. Wenn Sie ein Teil aktualisieren, müssen Sie nur die neue Version eines schreibgeschützten Bildes verwenden. Das Zurücksetzen auf eine frühere Version ist genauso einfach.
Quelle: http://www.ubuntu.com/cloud/snappy
Es gibt noch keine gute Dokumentation, die Frameworks beschreibt, vor allem, weil sie immer noch an den Grenzen eines Frameworks zu arbeiten scheinen. Hier ist ein Auszug aus ihrer Mailing-Liste, der zur Klärung beitragen könnte.
Ich experimentiere mit Frameworks, um das Snappy-Basissystem im Wesentlichen um Software und Services zu erweitern, die viele Snaps erfordern, aber aufgrund von Aktualisierungsproblemen und -größen nicht in jedem einzelnen Snap enthalten sein sollten. Das beste Beispiel, das ich dafür habe, ist die OpenSSL-Binärdatei. Viele Snaps benötigen dies, um Schlüssel und Zertifikate zu generieren und zu validieren.
Das andere Problem, das mit einem Framework gelöst werden muss, ist der Zugriff auf systemweite Ressourcen, insbesondere auf Ports. Beispielsweise würde ein Webserver-Framework anderen Snapps Möglichkeiten bieten, ihre Webdienst-API und Endpunkte über einen Reverse-Proxy in das Framework zu injizieren, in dem der Webserver ausgeführt wird.
Mir wurde im IRC gesagt, dass ich das Framework-Konzept missbrauche, aber diese beiden Probleme tauchen immer noch häufig auf meinem Schreibtisch auf.
Quelle: https://lists.ubuntu.com/archives/snappy-app-devel/2015-November/000442.html
Ich glaube nicht, dass Snaps überprüfen, welche Abhängigkeiten bereits installiert sind. Es enthält nur alle Abhängigkeiten und die Laufzeit (weshalb der LibreOffice-Snap zum Teil 287 MB und das Flatpak etwa 200 MB groß ist).
Zu den Snaps gehört so ziemlich alles, was die Software zum Ausführen benötigt. Ich glaube nicht, dass irgendetwas zwischen Schnappschüssen geteilt wird.
Wenn ein Snap aktualisiert wird, werden nur die neuen Abhängigkeiten und nicht der gesamte Snap heruntergeladen.
quelle
Weitere Erläuterungen zur Art und Weise, wie Snap Packaging gemeinsam genutzte Abhängigkeiten verarbeitet.
Diese Aussage in einer der Antworten ist teilweise richtig, jedoch hängen alle installierten Snap-Pakete mit Ausnahme des Core-Snaps von zwei Paketen ab, von denen eines der Core-Snap ist.
snapd - wird standardmäßig ab 16.04 installiert und kann auch ab 14.04 installiert werden.
core - (der Kern-Snap), der automatisch heruntergeladen und installiert wird, wenn das erste installierte Snap-Paket installiert wird
Alle Snap-Pakete außer dem Core selbst hängen vom Core-Snap ab. Wenn mit dem Kern-Snap etwas nicht stimmt, funktionieren einige oder alle anderen Snaps nicht. Ein Problem mit dem Kernfang kann auf zwei Arten behoben werden.
Aktualisieren Sie den Kernfang. Auch wenn dies nicht funktioniert, liefern die Ergebnisse der Ausführung des folgenden Befehls zusätzliche Informationen, die zur Behebung des Problems beitragen.
Deinstallieren Sie den Core Snap und alle Snap-Pakete und installieren Sie sie erneut.
quelle