Ces dernières années, la communauté Linux a été bénie par des avancées remarquables dans le domaine de la gestion des paquets sur les systèmes Linux, surtout en ce qui concerne l’emballage et la distribution universels ou inter-distributions des logiciels. L’une de ces avancées est le format de paquet Snap développé par Canonical, les créateurs du populaire Ubuntu Linux.
Qu’est-ce que les paquets Snap?
Les Snaps sont des applications inter-distributions, sans dépendances et faciles à installer, empaquetées avec toutes leurs dépendances pour fonctionner sur toutes les principales distributions Linux. À partir d’une seule construction, un snap (application) fonctionnera sur toutes les distributions Linux prises en charge sur les ordinateurs de bureau, dans le cloud et l’IoT. Les distributions prises en charge incluent Ubuntu, Debian, Fedora, Arch Linux, Manjaro et CentOS/RHEL.
Les Snaps sont sécurisés – ils sont confinés et isolés afin de ne pas compromettre l’ensemble du système. Ils fonctionnent sous différents niveaux de confinement (qui est le degré d’isolation par rapport au système de base et les uns aux autres). Plus remarquablement, chaque snap dispose d’une interface soigneusement sélectionnée par le créateur du snap, en fonction des besoins du snap, pour fournir un accès à des ressources système spécifiques en dehors de leur confinement telles que l’accès au réseau, l’accès au bureau, et plus encore.
Un autre concept important dans l’écosystème snap est les Canaux. Un canal détermine quelle version d’un snap est installée et suivie pour les mises à jour, et il est constitué et subdivisé par des pistes, des niveaux de risque et des branches.
Les principaux composants du système de gestion des paquets snap sont :
- snapd – le service en arrière-plan qui gère et maintient vos snaps sur un système Linux.
- snap – à la fois le format de paquet d’application et l’outil d’interface en ligne de commande utilisé pour installer et supprimer des snaps et effectuer de nombreuses autres tâches dans l’écosystème snap.
- snapcraft – le framework et l’outil puissant en ligne de commande pour construire des snaps.
- Magasin snap – un endroit où les développeurs peuvent partager leurs snaps et où les utilisateurs Linux peuvent les rechercher et les installer.
De plus, les snaps se mettent également à jour automatiquement. Vous pouvez configurer quand et comment les mises à jour se produisent. Par défaut, le démon snapd vérifie les mises à jour jusqu’à quatre fois par jour : chaque vérification de mise à jour est appelée un rafraîchissement. Vous pouvez également initier manuellement un rafraîchissement.
Comment installer Snapd sous Linux
Comme décrit ci-dessus, le démon snapd est le service en arrière-plan qui gère et maintient votre environnement snap sur un système Linux, en mettant en œuvre les politiques de confinement et en contrôlant les interfaces qui permettent aux snaps d’accéder à des ressources système spécifiques. Il fournit également la commande snap et remplit de nombreuses autres fonctions.
Pour installer le paquet snapd sur votre système, exécutez la commande appropriée pour votre distribution Linux.
------------ [On Debian and Ubuntu] ------------ $ sudo apt update $ sudo apt install snapd ------------ [On Fedora Linux] ------------ # dnf install snapd ------------ [On CentOS and RHEL] ------------ # yum install epel-release # yum install snapd ------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------ $ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy $ sudo zypper --gpg-auto-import-keys refresh $ sudo zypper dup --from snappy $ sudo zypper install snapd ------------ [On Manjaro Linux] ------------ # pacman -S snapd ------------ [On Arch Linux] ------------ # git clone https://aur.archlinux.org/snapd.git # cd snapd # makepkg -si
Après avoir installé snapd sur votre système, activez l’unité systemd qui gère le principal socket de communication snap, en utilisant les commandes systemctl comme suit.
Sous Ubuntu et ses dérivés, cela devrait être déclenché automatiquement par l’installateur de paquets.
$ sudo systemctl enable --now snapd.socket
Notez que vous ne pouvez pas exécuter la commande snap si snapd.socket n’est pas en cours d’exécution. Exécutez les commandes suivantes pour vérifier s’il est actif et s’il est activé pour démarrer automatiquement au démarrage du système.
$ sudo systemctl is-active snapd.socket $ sudo systemctl status snapd.socket $ sudo systemctl is-enabled snapd.socket

Ensuite, activez le support classic snap en créant un lien symbolique entre /var/lib/snapd/snap et /snap comme suit.
$ sudo ln -s /var/lib/snapd/snap /snap
Pour vérifier la version de snapd et de l’outil en ligne de commande snap installé sur votre système, exécutez la commande suivante.
$ snap version

Comment installer des Snaps sous Linux
La commande snap vous permet d’installer, configurer, actualiser et supprimer des snaps, et d’interagir avec l’écosystème de snaps plus large.
Avant d’installer un snap, vous pouvez vérifier s’il existe dans le snap store. Par exemple, si l’application appartient à la catégorie des « serveurs de discussion » ou des « lecteurs multimédias« , vous pouvez exécuter ces commandes pour le rechercher, ce qui interrogera le magasin pour les paquets disponibles dans le canal stable.
$ snap find "chat servers" $ snap find "media players"

Pour afficher des informations détaillées sur un snap, par exemple, rocketchat-server, vous pouvez spécifier son nom ou son chemin. Notez que les noms sont recherchés à la fois dans le snap store et dans les snaps installés.
$ snap info rocketchat-server

Pour installer un snap sur votre système, par exemple, rocketchat-server, exécutez la commande suivante. Si aucune option n’est fournie, un snap est installé en suivant le canal « stable« , avec un confinement de sécurité strict.
$ sudo snap install rocketchat-server

Vous pouvez choisir d’installer à partir d’un canal différent : edge, beta, ou candidate, pour une raison ou une autre, en utilisant les options --edge
, --beta
, ou --candidate
respectivement. Ou utilisez l’option --channel
et spécifiez le canal à partir duquel vous souhaitez installer.
$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server $ sudo snap install --candidate rocketchat-server
Gérer les Snaps sous Linux
Dans cette section, nous verrons comment gérer les snaps dans un système Linux.
Visualisation des Snaps Installés
Pour afficher un résumé des snaps installés sur votre système, utilisez la commande suivante.
$ snap list

Pour répertorier la révision actuelle d’un snap en cours d’utilisation, spécifiez son nom. Vous pouvez également répertorier toutes ses révisions disponibles en ajoutant l’option --all
.
$ snap list mailspring OR $ snap list --all mailspring

Mise à jour et réversion des snaps
Vous pouvez mettre à jour un snap spécifié ou tous les snaps du système s’il n’y en a aucun de spécifié comme suit. La commande refresh vérifie le canal suivi par le snap et télécharge et installe une version plus récente du snap si elle est disponible.
$ sudo snap refresh mailspring OR $ sudo snap refresh #update all snaps on the local system

Après avoir mis à jour une application vers une nouvelle version, vous pouvez revenir à une version précédemment utilisée en utilisant la commande revert. Notez que les données associées au logiciel seront également réverties.
$ sudo snap revert mailspring

Maintenant, lorsque vous vérifiez toutes les révisions de mailspring, la dernière révision est désactivée, une révision précédemment utilisée est maintenant active.
$ snap list --all mailspring

Désactivation/Activation et Suppression des snaps
Vous pouvez désactiver un snap si vous ne souhaitez pas l’utiliser. Lorsqu’il est désactivé, les binaires et les services d’un snap ne seront plus disponibles, cependant, toutes les données seront toujours là.
$ sudo snap disable mailspring
Si vous avez besoin d’utiliser à nouveau le snap, vous pouvez l’activer à nouveau.
$ sudo snap enable mailspring
Pour supprimer complètement un snap de votre système, utilisez la commande remove. Par défaut, toutes les révisions d’un snap sont supprimées.
$ sudo snap remove mailspring
Pour supprimer une révision spécifique, utilisez l’option --revision
comme suit.
$ sudo snap remove --revision=482 mailspring
Il est important de noter que lorsque vous supprimez une instantané, ses données (telles que les données utilisateur, système et de configuration internes) sont sauvegardées par snapd (version 2.39 et ultérieure) sous forme d’instantané, et stockées sur le système pendant 31 jours. En cas de réinstallation de l’instantané dans les 31 jours, vous pouvez restaurer les données.
Conclusion
Snaps deviennent de plus en plus populaires au sein de la communauté Linux car ils offrent un moyen facile d’installer des logiciels sur n’importe quelle distribution Linux. Dans ce guide, nous avons montré comment installer et travailler avec des snaps sous Linux. Nous avons couvert comment installer snapd, installer des snaps, afficher les snaps installés, mettre à jour et revenir en arrière sur les snaps, et désactiver/activer et supprimer les snaps.
Vous pouvez poser des questions ou nous contacter via le formulaire de feedback ci-dessous. Dans la prochaine partie de ce guide, nous couvrirons la gestion des snaps (commandes, alias, services et instantanés) sous Linux.