Développé par Canonical, la société à l'origine d'Ubuntu, et destiné à l'origine à être utilisé sur ce dernier, le gestionnaire de packages Snappy est un logiciel gratuit et open source utilisé pour installer et gérer des packages snap. Le but des packages Snap, tout comme les flatpaks, est de distribuer des applications en bac à sable et autonomes (les applications sont regroupées avec leurs dépendances).
Le gestionnaire de paquets Snappy et son infrastructure ont atterri sur des distributions autres qu'Ubuntu. Dans ce tutoriel, nous voyons comment l'installer et l'utiliser sur la dernière version de Fedora.
Dans ce didacticiel, vous apprendrez :
- Comment installer le gestionnaire de paquets instantanés
- Comment rechercher des packages dans le snap store
- Comment installer et mettre à jour les packages snap
- Comment répertorier les packages snap installés
- Comment créer et gérer des instantanés d'un package
- Comment supprimer des paquets instantanés
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Indépendant de la distribution |
Logiciel | snapd |
Autre | Privilèges root pour gérer les logiciels |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo command$ - nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Installation
Pour utiliser le gestionnaire de packages Snappy sur Fedora, la première chose à faire est d'installer le package contenant le logiciel. Heureusement pour nous, c'est une chose très facile à faire, car elle est disponible dans les dépôts officiels de Fedora. Nous pouvons effectuer l'installation graphiquement ou en utilisant le dnf
gestionnaire de paquets de notre émulateur de terminal bien-aimé. Voici la commande que nous voulons exécuter :
$ sudo dnf install snapd
Le snap-confine
et snapd-selinux
sont installés en tant que dépendances de snapd :le premier contient le logiciel utilisé pour appliquer le confinement aux applications snap, tandis que le second fournit la politique qui permet à snapd de fonctionner correctement sous SELinux. Dans le cadre de l'installation, le snapd.socket
est activé en utilisant systemd.
Rechercher des packages
La façon dont nous interagissons avec les packages snap est d'utiliser le snap
application. L'une des actions les plus élémentaires que nous devons effectuer consiste à déterminer si un logiciel spécifique est disponible sur le snap store. Pour accomplir cette action, nous pouvons utiliser la commande snap "trouver" ou "rechercher" (cette dernière est un alias pour la première). Supposons que nous voulions installer le package snap "gimp". Pour voir si l'application est disponible, nous pouvons exécuter :
$ snap find gimp
Comme vous pouvez le voir, la commande ne nécessite pas de privilèges administratifs. Il renvoie la sortie suivante :
Name Version Publisher Notes Summary gimp 2.10.28 snapcrafters - GNU Image Manipulation Program gutenprint-printer-app 1.0 openprinting✓ - Gutenprint Printer Application photogimp 2.10.20 pedro.ermarinho - Patch para o GIMP djpdf 0.1.6 unrud - Create small, searchable PDFs from scanned documents lazpaint 7.1.6 chronoscz - Image editor with raster and vector layers.
Les informations sur les packages disponibles qui correspondent à nos critères de recherche sont renvoyées :
- Le nom du paquet
- La version du package snap
- L'éditeur de clichés
- Notes éventuelles sur le package
- Une brève description du package
Installer des packages snap
Pour installer un package snap, tout ce que nous avons à faire est d'utiliser la commande snap "install". Juste à titre d'exemple, supposons que nous voulions installer le gimp
l'application que nous avons recherchée à l'étape précédente. Voici la commande que nous exécuterions :
$ sudo snap install gimp
Par défaut, sauf indication contraire, les packages sont installés à partir du canal "stable". Une fois que nous avons exécuté la commande ci-dessus, nous pouvons suivre la progression de l'installation en lisant la sortie du terminal :
2022-03-29T14:25:15+02:00 INFO Waiting for automatic snapd restart... gimp 2.10.28 from Snapcrafters installed
Les versions récentes des snaps supportent le mode « confinement classique ». Lorsqu'un package snap est installé dans ce mode, il n'est en fait pas confiné, afin qu'il puisse accéder aux ressources sur le système hôte. Si nous voulons installer un package dans ce mode, nous devons exécuter la commande "install" avec le --classic
option.
Les fichiers relatifs aux packages snap et leurs dépendances sont déployés sur le système à l'aide de SquashFS en lecture seule, sous la forme de périphériques de boucle, qui sont montés dans les répertoires correspondants sous /var/lib/snapd
. Nous pouvons clairement le voir en jetant un coup d'œil à la sortie du lsblk
commande :
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 43.6M 1 loop /var/lib/snapd/snap/snapd/15177 loop1 7:1 0 55.5M 1 loop /var/lib/snapd/snap/core18/2344 loop2 7:2 0 4K 1 loop /var/lib/snapd/snap/bare/5 loop3 7:3 0 65.2M 1 loop /var/lib/snapd/snap/gtk-common-themes/1519 loop4 7:4 0 164.8M 1 loop /var/lib/snapd/snap/gnome-3-28-1804/161 loop5 7:5 0 391.3M 1 loop /var/lib/snapd/snap/gimp/383
Un périphérique de bloc de boucle existe pour chaque package de composant logiciel enfichable installé. Dans le cas du snap « gimp », Si on vérifie le contenu du /var/lib/snapd/snap/gimp/383
point de montage (383 est la révision du package snap - plusieurs révisions peuvent être installées en même temps), nous pouvons voir une arborescence complète du système de fichiers qui héberge les fichiers de l'application :
$ ls /var/lib/snapd/snap/gimp/383 bin data-dir etc lib meta sbin snap usr var
Pour pouvoir lancer l'application comme nous le ferions après l'installation d'un package natif du système, le /var/lib/snapd/snap/bin
répertoire doit être ajouté à notre PATH
. Cela devrait être fait automatiquement dans le cadre de l'installation de snapd. Nous pouvons le vérifier, en vérifiant la valeur de la variable :
$ echo $PATH /home/egdoc/.local/bin:/home/egdoc/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin
Mettre à jour un package
Plusieurs révisions d'un package snap peuvent coexister en même temps. Nous avons brièvement vu comment la révision actuellement installée du paquet gimp snap est 383. La version active actuelle est liée symboliquement à /var/lib/snapd/snap/<package>/current
. Dans le cas de gimp :
$ ls -l /var/lib/snapd/snap/gimp drwxr-xr-x. 11 root root 146 Nov 8 17:14 383 lrwxrwxrwx. 1 root root 3 Mar 29 14:27 current -> 383
Pour vérifier si une nouvelle révision d'un package snap est disponible et la mettre à jour, nous pouvons utiliser le refresh
commande. Dans ce cas, si nous essayons de mettre à jour le package gimp, nous sommes avertis qu'aucune mise à jour n'est disponible :
$ sudo snap refresh gimp snap "gimp" has no updates available
Si nous utilisons le refresh
commande sans spécifier de nom de package comme argument, l'application vérifiera les mises à jour pour tous les packages snap installés sur le système.
Liste des packages snap installés
Pour obtenir un rapport sur les packages snap actuellement installés, il suffit d'utiliser la commande "list" de l'utilitaire snap. Voyons un exemple de la commande en action :
$ snap list Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical✓ base core18 20220309 2344 latest/stable canonical✓ base gimp 2.10.28 383 latest/stable snapcrafters - gnome-3-28-1804 3.28.0-19-g98f9e67.98f9e67 161 latest/stable canonical✓ - gtk-common-themes 0.1-59-g7bca6ae 1519 latest/stable canonical✓ - snapd 2.54.4 15177 latest/stable canonical✓ snapd
Nous avons explicitement installé "gimp", donc tous les autres packages ont été installés en tant que dépendances ou en tant que "cœur" de l'infrastructure snap. Une coche après le nom de l'éditeur du package signifie qu'il a été validé.
Créer et gérer des instantanés de package
Une fonctionnalité intéressante de l'écosystème de packages instantanés est la possibilité de créer des instantanés des données système, utilisateur et de configuration associées à un package. Les instantanés sont automatiquement créés lorsqu'un package d'instantanés est supprimé, mais peuvent également être créés manuellement avec le save
commande. Pour créer un instantané du package "gimp", par exemple, nous exécuterions :
$ sudo snap save gimp
Si nous ne fournissons pas de nom de package comme argument à la commande save, des instantanés pour tous les packages existants sont créés. Pour obtenir une liste des instantanés existants sur le système, nous pouvons utiliser le saved
commande :
$ sudo snap saved Set Snap Age Version Rev Size Notes 1 gimp 20.0m 2.10.28 383 134kB auto 3 gnome-3-28-1804 10.4m 3.28.0-19-g98f9e67.98f9e67 161 124B -
Dans la sortie de la commande, nous pouvons voir des informations très utiles telles que l'instantané id , et son âge . Pour restaurer un instantané, nous utilisons le restore
commande, et nous référençons l'instantané que nous voulons restaurer par son identifiant. Pour restaurer l'instantané de gimp que nous voyons dans la sortie de l'exemple précédent, nous exécuterions :
$ sudo snap restore 1 Restored snapshot #1.
Enfin, pour supprimer manuellement un instantané existant, nous utilisons le forget
commande. Voici ce que nous exécuterions pour supprimer l'instantané gimp :
$ sudo snap forget 1 Snapshot #1 forgotten.
Suppression des paquets instantanés
Intuitivement, pour supprimer un package snap précédemment installé, il faut utiliser le remove
commande. Par défaut, un paquet est supprimé avec toutes ses révisions installées. Si nous voulons supprimer une révision spécifique d'un paquet, nous devons la passer en argument au --revision
option. Lors de la spécification d'une révision, pour qu'elle soit supprimée, elle ne doit pas être "active", donc si vous essayez d'utiliser l'option lorsqu'une seule version d'un package snap, la commande échouera. Supposons que nous voulions supprimer le package "gimp" que nous avons installé dans ce tutoriel, par exemple, nous lancerions :
$ sudo snap remove gimp
Ou, s'il existe plusieurs révisions :
$ sudo snap remove gimp --revision 383
Les instantanés du package d'instantanés ne sont pas supprimés lorsque nous supprimons le package (un instantané est en fait créé lorsque le package est supprimé). Pour forcer leur suppression, on peut passer le --purge
l'option remove
commande. Pour supprimer "gimp" avec tous les instantanés associés, par exemple, nous exécuterions :
$ sudo snap remove --purge gimp
Conclusion
Dans ce tutoriel, nous avons appris à utiliser les packages snap sur Fedora. L'écosystème des packages instantanés a été initialement développé par Canonical pour Ubuntu, mais il est ensuite devenu disponible également sur d'autres distributions. Nous avons appris à rechercher, installer, mettre à jour et désinstaller des packages snap sur Fedora et à gérer les instantanés de packages snap. Bien que les snap packages fonctionnent sur Fedora, la technologie par défaut des applications autonomes utilisées sur la distribution est le flatpak :si vous voulez en savoir plus, et apprendre à vous en servir, vous pouvez jeter un œil à notre tutoriel sur le sujet.