Que sont les paquets Snaps développés par Canonical pour la portabilité ?

Introduction

Avec son désir d’interface graphique « convergeante », c’est à dire adaptative entre des tailles d’écran très différentes, Canonical doit faire face à des problèmes de portabilité de ses applications.

Le monde mobile a ceci de particulier que les périphériques sont vendus préinstallés, à des utilisateurs néophytes, le plus souvent sur l’architecture ARM réputée plus complexe que le monde standardisé des processeurs x86 de bureau. Mettre le téléphone d’un utilisateur à jour et à distance relève dès lors du défis. L’univers Android le connait bien, puisque les téléphones reçoivent au mieux quelques mises à jour avant d’être abandonnés.

L’entreprise Canonical veut éviter de tomber dans ce piège et pouvoir gérer elle même les mises à jours de tous les périphériques utilisant son OS, mobiles comme ordinateurs de bureau. Cela lui permettra d’une part d’éviter une fragmentation importante des versions de son OS sur le marché mobile, d’autre part d’étendre la prise en charge de ses applications sur ordinateur de bureau vers d’autres distributions Linux.

Des paquets universels

La solution envisagée repose sur la création d’un format de paquet universel, différent de deb ou rpm, capable de s’installer sur tout système d’exploitation Linux ayant installé le logiciel snapd, équivalent d’apt. Snappy est déjà disponible dans Gentoo, Fedora, Arch Linux, Debian etc.

Puisque ces paquets sont portables, il existe un site expliquant comment packager des applications ainsi qu’un store d’applications empaquetées.

Microsoft Azure supporte Ubuntu Snappy depuis fin 2014, une version serveur d’Ubuntu utilisant les snaps, et Ubuntu Desktop les supporte depuis la version 16.04.

L’intérêt pour les développeurs

Tout le casse tête pour un développeur d’applications souhaitant prendre en charge l’univers Linux est de devoir s’intéresser à chaque distribution individuellement, empaqueter son logiciel en .deb, .rpm et continuer avec les nombreux autres formats, tout en s’impliquant dans un processus long et complexe de maintient de ses paquets dans les dépôts officiels des distributions qu’il veut toucher, et recommencer lors de chaque mise à jour desdites distributions, là où un .exe sous Windows peut fonctionner de XP à Windows 10 sans avoir eu à s’en soucier.

Les paquets snaps viennent de résoudre cette problématique.

L’intérêt pour les utilisateurs

En revanche, côté utilisateur, les .deb ont beaucoup d’avantages :

  • On peut les installer via un store applicatif (apt, la logithèque Ubuntu, le centre de logiciels Gnome, celui de KDE etc)
  • L’installation de paquets sur le système requiers les droits « root »
  • Tous les paquets sont vérifiés et signés, donc sûrs, leur présence dans un dépôt officiel garanti qu’ils soient libres et que ce soit bien la version officielle du développeur initial (et non trafiquée par Sourceforge)
  • Les mises à jours de tous les logiciels sont centralisées dans un seul outil, ce dont les utilisateurs de Windows rêvent depuis sa création
  • Les dépendances d’un logiciel sont partagées, rendant son téléchargement initial ultra léger (plus on a de logiciels installés plus on a de change d’avoir déjà toutes les bibliothèques les plus populaires). Autre avantage, la consommation en RAM est réduite à son minimum car une bibliothèque n’est chargée qu’une fois pour plusieurs logiciels (GTK est un bon exemple). Le système est donc rapide pour installer, lancer et mettre à jour ses logiciels.

Et quelques inconvénients :

  • Les versions des logiciels sont figées dans les dépôts, on a rarement la dernière version du développeur, seulement les mises à jour pour la version en cours
  • Ajouter des dépôts externe créé irrémédiablement de l’instabilité, en proposant parfois des mises à jour de dépendances
  • Installer un logiciel hors des dépôts n’est pas une facilité et le mettre à jour est plus compliqué

L’avantage des paquets snaps pour l’utilisateur est la possibilité d’avoir les dernières versions disponibles de chaque logiciel sans avoir à attendre la prochaine montée de version du système. Les paquets snaps pourraient convaincre des développeurs dont le logiciel fonctionne sous Linux de faire l’effort de l’empaqueter pour le distribuer et le maintenir. Certains logiciels comme l’interface Unity représentent actuellement un trop grand défi pour être empaquetés sur d’autres distributions. Enfin, les vieux logiciels abandonnés finissent souvent par ne plus avoir de paquets deb/rpm récents et ne peuvent plus être exécutés sur les distributions récentes à cause de leurs dépendances.

Les paquets snaps arrivent avec un inconvénient, en terme de poids et consommation en RAM. Pour savoir de quoi ils sont faits, lisez la suite !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.