Quelles technologies se cachent derrière le format de paquets snaps « by Canonical » ?

Principe de fonctionnement des snaps

Contrairement aux paquets habituels sous Linux, les snaps ne partagent pas leurs dépendances. C’est ce qui explique que les logiciels empaquetés dans des snaps soient indépendants du système. Les paquets sont bien plus lourds et chaque logiciel lancé chargera en RAM l’intégralité de ses dépendances sans les partager.

Un paquet snap est une archive SquashFS montée en lecture seule, exactement comme un Live CD sous Linux. Les paquets sont signés comme les dépôts et mis à jours de manière transactionnelle. Les mises à jours n’ajoutent que les différences entre la nouvelle version et l’actuelle, sans retélécharger intégralement le paquet.

Chaque paquet dispose d’autorisations précises pour accéder à d’autres applications, services ou fonctionnalités du système d’exploitation (via AppArmor). Leurs dossiers « tmp » sont séparés.

Un snap peut difficilement endommager ou déstabiliser le système :

Contrairement aux conteneurs à la mode, type docker et compagnie, les paquets sont montés dans des dossiers isolés par confinement, ils utilisent donc le noyau du système et n’ont pas d’interface réseau individuelle requérant une gestion NAT compliquée.

Le système Ubuntu complet a été découpé et mis dans des snaps dans l’édition Ubuntu Core. Voici à quoi ressemble l’OS actuel :

Et voici Ubunutu Core :

Sur Ubuntu Core, les .deb ne disparaissent pas du système pour autant mais ne sont plus la voie principale pour installer des paquets, puisqu’apt semble placé dans un conteneur (assez peu d’info trouvée à ce sujet). Dans un premier temps en revanche, l’option la plus souple semble d’installer snapd (l’apt des snaps) sur un système non-snappy tel que l’Ubuntu Desktop classique, ce qui vous prive toutefois du déploiement facilité de mises à jour d’Ubuntu Core.

Vous pouvez trouver plus d’informations en écoutant cette conférence de l’Ubuntu Party de Paris.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.