Tout ce que vous devez savoir sur Snap et Snap Store

Un gestionnaire de packages est un ensemble de services intégrés qui facilitent l'installation, la mise à jour, la suppression et la configuration de packages/programmes sur un ordinateur.

En parlant spécifiquement du système d'exploitation Linux, vous avez le choix parmi une large gamme de gestionnaires de packages, tels que APT, YUM, RPM et Pacman. Chacun de ces gestionnaires de packages a une caractéristique distincte qui les distingue des autres.

Cependant, un gestionnaire de packages relativement nouveau, Snap, est devenu une alternative viable aux gestionnaires de packages traditionnels. Voyons maintenant Snap, ses avantages et ses inconvénients, et comment l'installer et l'utiliser sous Linux.

Qu'est-ce que Snap ?

Snap est un système d'emballage et de déploiement multiplateforme développé par Canonical, les créateurs d'Ubuntu, pour la plate-forme Linux. Il est compatible avec la plupart des principales distributions Linux, notamment Ubuntu, Debian, Arch Linux, Fedora, CentOS et Manjaro.

Snap se compose de trois composants fondamentaux :

1. Snaps

Comme tout autre gestionnaire de packages, Snap propose également des packages appelés snaps. Ces packages, contrairement à leurs homologues des gestionnaires de packages traditionnels, sont sans dépendance et faciles à installer.

Les snaps se terminent par l'extension .snap , qui est essentiellement un système de fichiers compressé qui utilise le format SquashFS et contient l'intégralité du module de package, y compris l'application, ses bibliothèques dépendantes et des métadonnées supplémentaires.

2. Snapd

Snapd (ou snap daemon) utilise les métadonnées snap pour configurer un bac à sable sécurisé pour les applications sur votre système. Puisqu'il s'agit d'un démon, toute la tâche de maintenance et de gestion de l'environnement snap se déroule en arrière-plan.

3. Snap Store

Les Snaps résident dans le Snap Store, et vous pouvez les explorer et les télécharger comme vous le faites avec d'autres gestionnaires de packages. De plus, vous avez également la possibilité de publier vos propres packages de snap directement sur le Snap Store, ce qui n'est pas possible avec les gestionnaires de packages traditionnels.

Outre ces éléments, Snap possède également un autre composant essentiel appelé canal . Un canal est chargé de définir quelle version d'un snap est installée et suivie pour les mises à jour sur votre système. Par conséquent, lorsque vous installez ou mettez à jour des snaps, vous avez la possibilité de spécifier le canal avec lequel vous souhaitez procéder pour chacune de ces opérations.

Récapituler:

  • Snap : utilisé pour faire référence à la fois au format du package d'application et à l'interface de ligne de commande.
  • Snapd : Un démon Snap qui aide à gérer et à maintenir les snaps.
  • Snap Store : Accueil de tous les snaps ; vous permet de télécharger vos propres clichés et d'explorer et d'installer de nouveaux clichés.
  • Snapcraft : Un framework qui vous aide à créer vos propres snaps.

Snap : le bon et le mauvais

Depuis que Canonical a annoncé Snap, la communauté Linux se demande si Snap est la bonne approche pour améliorer la distribution des packages sous Linux. Cela a donné lieu à deux camps opposés : l'un en faveur de Snap et l'autre critique de son approche à long terme.

Voici une ventilation de tout ce qui est bon et mauvais à propos de Snap.

Avantages de l'utilisation de Snap

  1. Les Snaps sont fournis avec des dépendances (bibliothèques) qui facilitent l'accès instantané à un programme, car vous n'avez plus besoin d'installer manuellement les dépendances manquantes pour le faire fonctionner sur votre système.
  2. Chaque snap s'exécute dans son propre bac à sable conteneurisé pour éviter toute interférence avec d'autres packages système. Par conséquent, lorsque vous supprimez un snap, le système supprime toutes ses données, y compris les dépendances, sans affecter les autres packages. Inutile de dire que cela offre également un environnement plus sécurisé puisqu'un package ne peut pas accéder aux informations d'un autre.
  3. Snap met à jour les snaps automatiquement à des intervalles définis. Par conséquent, vous exécutez toujours la dernière version d'un programme sur votre système.
  4. Snap permet aux développeurs de distribuer plus facilement leurs logiciels directement aux utilisateurs, afin qu'ils n'aient pas à attendre que leur distribution Linux les déploie.
  5. En plus du point précédent, un autre avantage de confier aux développeurs la responsabilité de l'empaquetage et de la distribution de leur logiciel est qu'ils n'ont pas à créer de packages spécifiques à la distribution, car ils sont fournis avec les dépendances requises.

Inconvénients de Snap

  1. Étant donné que les snaps sont fournis avec des dépendances, ils sont plus volumineux et occupent plus d'espace disque que leurs homologues des autres gestionnaires de packages.
  2. En raison des dépendances regroupées, les snaps sont distribués sous forme d'images de système de fichiers compressées et vous devez d'abord les monter avant l'installation. Pour cette raison, les snaps sont plus lents à exécuter que les packages traditionnels.
  3. Bien que Snap permette aux développeurs de distribuer leurs clichés directement aux utilisateurs, le pipeline de distribution les oblige à créer un compte avec Canonical et à y héberger leurs clichés. Cela va à l'encontre de la vraie nature de la méthodologie open source car même si le logiciel est toujours open source, le système de gestion des packages est contrôlé par une entité.
  4. Un autre inconvénient de permettre aux développeurs de distribuer des packages est que les packages ne sont pas soumis à des contrôles et des examens rigoureux par la communauté et comportent donc le risque de contenir des logiciels malveillants — comme on l'a vu il y a quelques années.
  5. En raison du fait que le back-end de Snap est toujours à code source fermé et contrôlé par Canonical, de nombreuses grandes distributions Linux ne sont pas d'accord avec l'idée de mettre Snap comme gestionnaire de paquets par défaut sur leur système.

En ce qui concerne le risque de malware, Snap utilise désormais des tests de malware automatiques pour analyser les packages téléchargés par l'utilisateur à la recherche de code malveillant avant qu'il ne soit distribué sur le Snap Store.

Connexe : Qu'est-ce qu'un logiciel malveillant et comment fonctionne-t-il ?

Comment installer snapd sous Linux

Puisque snapd est un composant essentiel de Snap, c'est la première chose que vous devez installer sur votre système. Si vous utilisez l'une des distributions Linux suivantes, cependant, Snapd est déjà pré-installé sur votre système : KDE Neon, Manjaro, Ubuntu (16.04/4 LTS et 20.04 LTS), Zorin OS.

Dans le cas d'autres distributions Linux, vous devrez installer snapd manuellement.

Sur Debian/Ubuntu :

 sudo apt update
sudo apt install snapd

L'installation de snapd sur CentOS et d'autres distributions basées sur RHEL est simple :

 yum install epel-release
yum install snapd

Pour installer snapd sur Fedora :

 sudo dnf install snapd

Sur ArchLinux :

 git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si

Connexe: Comment installer et supprimer des packages dans Arch Linux

Pour installer snapd sur Manjaro Linux :

 sudo pacman -S snapd

Une fois installé, vous devez activer l'unité systemd responsable de la gestion des communications Snap sur (certaines) distributions Linux avant de pouvoir utiliser Snap.

Si vous utilisez une distribution Linux autre qu'Ubuntu et ses dérivés, exécutez la commande suivante pour activer l'unité snapd systemd :

 sudo systemctl enable --now snapd.socket

Enfin, redémarrez votre système avec :

 sudo reboot

En savoir plus : Comment gérer les services système à l'aide de la commande systemctl

Comment utiliser Snap sur Linux

L'utilisation de Snap est assez similaire à l'utilisation d'autres gestionnaires de packages. Puisque vous avez installé snapd sur votre système à l'étape précédente, vous pouvez désormais accéder à l'outil Snap et interagir facilement avec les snaps du Snap Store.

Trouver un Snap

Avec Snap, vous pouvez explorer le Snap Store et trouver des packages dans différentes catégories. Donc, si vous souhaitez rechercher des snaps dans une catégorie particulière, utilisez la syntaxe de commande suivante :

 snap find package_category

Par example:

 snap find development

Si vous tombez sur un paquet et que vous voulez en savoir plus, utilisez la méthode info avec la commande par défaut.

 snap info package_name

Par exemple, pour extraire des informations sur le snap GIMP :

 snap info gimp

Installer un Snap

Enfin, lorsque vous trouvez un snap qui répond à vos besoins, vous pouvez l'installer en exécutant :

 sudo snap install package_name

Une fois installé, vous pouvez trouver le programme dans le menu Applications de votre distribution Linux. Vous pouvez ensuite l'exécuter directement depuis le menu ou via le terminal en saisissant son nom.

Lister les Snaps installés

Pour obtenir une liste de tous les snaps installés sur votre système :

 snap list

Affichage des informations de version d'un Snap

Pour connaître la version actuelle d'un snap, exécutez :

 snap list package_name

Mise à jour des Snaps

Snap met automatiquement à jour les packages installés sur votre système. Pour faciliter cela, snapd, par défaut, est configuré pour vérifier les mises à jour quatre fois par jour. Cependant, si vous le souhaitez, vous pouvez modifier cette fréquence de rafraîchissement en fonction de vos préférences.

De plus, si nécessaire, vous pouvez effectuer une actualisation instantanée en exécutant :

 snap refresh

De même, vous pouvez également rechercher une mise à jour en un clin d'œil avec :

 sudo snap refresh package_name

Lorsque vous le faites, Snap vérifie le canal suivi par le snap pour une version plus récente. Si une mise à jour est disponible, elle la télécharge et l'installe automatiquement.

Connexe : Comment mettre à jour une ou toutes les applications sur Linux en quelques secondes

Revenir à la version précédemment utilisée d'un Snap

Si vous rencontrez des problèmes après la mise à jour d'un snap, vous pouvez revenir à sa version précédente en exécutant :

 sudo snap revert package_name

Désactiver et activer un snap

Pour les moments où vous n'utilisez pas un snap, mais pourriez avoir besoin de le faire à l'avenir, vous pouvez le désactiver temporairement et le réactiver si nécessaire. De cette façon, vous n'avez pas à passer par le processus fastidieux de désinstallation et de réinstallation du snap.

Pour désactiver un snap, tapez :

 sudo snap disable package_name

Lorsque vous souhaitez l'activer, exécutez simplement :

 sudo snap enable package_name

Supprimer un Snap

Enfin, pour supprimer les snaps inutilisés de votre système dont vous n'aurez probablement plus besoin à l'avenir :

 sudo snap remove package_name

Configuration réussie de Snap sur Linux

Si vous avez suivi le guide jusqu'à présent, Snap sera opérationnel sur votre système Linux. Et par la suite, vous devriez pouvoir trouver et télécharger la plupart des packages dont vous avez besoin. Bien sûr, comme c'est le cas avec tout autre gestionnaire de packages, il vous faudra peut-être un certain temps pour vous familiariser avec Snap. Mais une fois que vous aurez pris le coup, vous pourrez l'utiliser efficacement.

Cela dit, cependant, il y a à la fois des avantages et des inconvénients à utiliser Snap, que vous devez prendre en compte avant de commencer. Si vous souhaitez une alternative à Snap — une qui s'aligne bien avec la méthodologie gratuite et open source — consultez Flatpaks pour avoir une meilleure idée du gestionnaire de packages qui a un meilleur magasin pour télécharger des applications Linux.