Comment travailler avec des packages Snap sous Linux

Lorsque vous installez des packages logiciels Linux avec snap, vous pouvez dire adieu à l’enfer des dépendances et à la rupture d’autres applications fonctionnelles. Les packages Snap ont été conçus à l’origine pour Ubuntu, mais ils sont maintenant disponibles sur une variété de distributions Linux.

Que sont les packages Snap?

Dans le passé, l’installation d’applications sur Linux était une expérience potentiellement frustrante. Vous installeriez quelque chose uniquement pour trouver une bibliothèque particulière ou une autre dépendance manquante ou obsolète. Vous recherchiez ensuite la ressource manquante et l’installeriez, pour trouver une autre application dépendant de la version de la bibliothèque que vous venez de remplacer. Fixez-en un, cassez-en un, répétez.

Cela s’est amélioré grâce à de meilleurs systèmes de gestion de paquets, comme apte, dnf, et Pac-Man. Cependant, vous rencontrez toujours des difficultés si vous avez besoin d’installer différentes versions de la même application. Ou, si vous utilisez deux applications qui se heurtent parce qu’elles sont liées à des versions spécifiques – mais différentes – d’une bibliothèque.

Une solution à ces problèmes est le conditionnement des applications et les systèmes de déploiement. Snappy est l’un des plus populaires d’entre eux. Il est basé sur un système de packaging et de déploiement appelé Click, qui rappelle Ubuntu Touch initiative. AppImage et FlatPack sont d’autres que vous pourriez avoir rencontrés.

Ces systèmes encapsulent l’application avec toutes les dépendances et autres exigences dans un seul fichier compressé. L’application s’exécute alors dans une sorte de mini-conteneur. Il est mis en bac à sable et séparé des autres applications. Les bibliothèques et autres ressources avec lesquelles l’application est intégrée ou dont elle a besoin ne sont disponibles que pour elle seule.

Ils ne sont pas installés au sens traditionnel du terme, ils ne posent donc aucun problème avec d’autres applications qui nécessitent différentes versions des mêmes ressources. Vous pouvez même installer et exécuter des applications qui nécessitent des versions de bibliothèque en conflit, car chaque application se trouve dans son propre bac à sable.

S’ils ne sont pas installés de la manière habituelle, comment sont-ils gérés? Eh bien, le fichier de package unique est téléchargé, décompressé et monté en tant que SquashFSsystème de fichiers virtuel. Il vous est ensuite présenté comme un environnement virtuel. Tout cela se déroule dans les coulisses. Tout ce que vous savez, c’est que vous avez installé une application et que vous y avez désormais accès.

Bien entendu, étant donné que chaque fichier de package doit contenir toutes les ressources dont l’application a besoin, les fichiers de package peuvent être volumineux. Il est également facile de dupliquer une ressource que vous n’installeriez normalement qu’une seule fois, telle que MySQL ou Apache. Si deux applications Snap différentes nécessitent les mêmes ressources, elles apportent chacune leur propre copie.

  Ajouter l'assistance «Ok Google» aux lanceurs Android tiers

C’est le compromis entre la simplicité de l’installation et la suppression des maux de tête liés aux conflits de ressources.

Installation de snapd

Snappy a été introduit avec Ubuntu 16.04, donc si vous utilisez cette version ou une version ultérieure, vous êtes déjà prêt à partir. Sur notre machine, Snappy était installé sur Manjaro 18.04, mais nous avons dû l’installer sur Fedora 31.

snap est à la fois le nom des fichiers de package et la commande que vous utilisez pour interagir avec eux. Dans les coulisses, le démon snapd est également le nom du package que vous devez installer si vous n’avez pas déjà Snappy sur votre ordinateur.

Pour installer snapd sur Fedora, tapez la commande suivante:

sudo dnf install snapd

le

Si vous devez l’installer sur Manjaro, utilisez ces commandes:

sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket

Vous pouvez utiliser la commande snap version pour voir la version du client snap, le démon snapd et le numéro de série du logiciel. Le nom et la version de votre distribution Linux et la version du noyau seront également affichés pour vous.

Tapez ce qui suit:

snap version

le

Installer des packages snap

C’est un processus assez simple pour installer un package snap. Vous pouvez utiliser snap pour rechercher des packages snap, puis installer celui que vous souhaitez.

Nous tapons ce qui suit pour rechercher et installer l’éditeur d’image gimp:

snap find gimp

le

snap recherche des correspondances avec l’indice de recherche «gimp» et renvoie ses résultats. Il trouvera tout ce qui correspond ou mentionne le terme de recherche.

Pour installer l’un des packages, nous utilisons la valeur de la colonne Nom, comme indiqué ci-dessous:

sudo snap install gimp

le

Au fur et à mesure du téléchargement, le pourcentage de réussite augmente et une barre de progression se glisse à gauche de la fenêtre du terminal. Lorsque l’installation est terminée, un message apparaît (comme indiqué ci-dessous) vous indiquant que le package a été installé.

UNE

Vous pouvez utiliser la commande df pour vérifier la capacité et l’utilisation des différents systèmes de fichiers configurés sur votre ordinateur Linux. Si nous dirigeons sa sortie dans la commande grep et recherchons «gimp», nous isoler l’entrée du package nous venons d’installer.

Nous tapons ce qui suit:

df | grep gimp

le

Cela nous montre que le package snap a été monté comme s’il s’agissait d’un système de fichiers. Le point de montage se trouve dans le répertoire snap ici: / snap / gimp / 252. Le «252» est le numéro de version de cette version de gimp.

  Comment insérer une feuille de calcul Google Sheets dans Google Docs

Le système de fichiers est répertorié comme suit: / dev / loop18. Les fichiers de périphérique en boucle sont utilisés pour rendre les fichiers normaux accessibles en tant que périphériques de bloc. Ils sont généralement utilisés pour monter les systèmes de fichiers dans les images disque. Dans ce cas, ils montent le système de fichiers SquashFS dans le package snap. Le «18» signifie qu’il s’agit du 18e fichier de périphérique / dev / loop utilisé sur cet ordinateur Linux.

Nous pouvons utiliser la commande df pour vérifier rapidement cela. Nous utiliserons l’option -t (type) pour limiter la sortie aux types de fichiers SquashFS uniquement.

Nous tapons ce qui suit:

df -t squashfs

le

Les systèmes de fichiers SquashFS montés sont répertoriés. Un fichier de périphérique / dev / loop gère chacun d’eux, et il y en a 18.

Les systèmes de fichiers SquashFS sont répertoriés dans une fenêtre de terminal.

Chaque système de fichiers est monté sur un répertoire dans le répertoire / snap. Cependant, cela ne signifie pas qu’il existe 18 packages d’instantanés différents installés sur cet ordinateur. Il s’agit d’une distribution Ubuntu, donc certains packages snap sont installés dès la sortie de la boîte, et nous venons d’en installer un autre.

En outre, lorsque vous installez snapd, il installe certains packages de composants logiciels enfichables principaux pour répondre aux besoins d’autres packages de composants logiciels enfichables.

Nous pouvons utiliser la commande snap list, comme indiqué ci-dessous, pour lister les packages snap installés:

snap list

Une liste instantanée dans une fenêtre de terminal.

La sortie était un peu large, donc la fin des listes est indiquée ci-dessous.

La fin de la sortie de la liste d'accrochage dans une fenêtre de terminal.

Voici la liste complète:

Name                 Version                    Rev   Tracking  Publisher    Notes
core                 16-2.43.3                  8689  stable    canonical*   core
core18               20200124                   1668  stable    canonical*   base
gimp                 2.10.18                    252   stable    snapcrafters -
gnome-3-26-1604      3.26.0.20191114            98    stable/…  canonical*   -
gnome-3-28-1804      3.28.0-16-g27c9498.27c9498 116   stable    canonical*   -
gnome-calculator     3.34.1+git1.d34dc842       544   stable/…  canonical*   -
gnome-characters     v3.32.1+git3.b9120df       399   stable/…  canonical*   -
gnome-logs           3.34.0                     81    stable/…  canonical*   -
gnome-system-monitor 3.32.1-3-g0ea89b4922       127   stable/…  canonical*   -
gtk-common-themes    0.1-28-g1503258            1440  stable/…  canonical*   -

Comme vous pouvez le voir, il y a 10 packages snap installés, pas 18. Cependant, ces 10 packages ont donné naissance aux 18 systèmes de fichiers SquashFS. Les colonnes du tableau sont assez explicites, mais voici quelques éclaircissements:

Nom: nom du package d’instantanés qui a été installé.
Version: numéro de version du logiciel dans le package snap.
Rev: le numéro de révision du package snap.
Suivi: le canal que ce package Snap surveille pour les mises à jour. Ils sont quatre:
Stable: le canal par défaut. Comme son nom l’indique, ce canal contient les packages les plus stables.
Candidat: Ce canal est moins stable, mais très proche de lui car il contient un logiciel de niveau candidat à la version, qui est complet en code. Il passe par des tests finaux avant d’être déplacé vers le canal stable.
Bêta: ce canal est de qualité en fin de cycle de développement, mais sa stabilité n’est pas garantie.
Edge: pour les premiers testeurs de build. Vous ne devez pas utiliser ce canal pour un travail important ou sur un ordinateur de production. Voilà des dragons!

  Comment passer à la mini-vue dans l'application Films et TV sous Windows 10

Éditeur: personne, entreprise ou organisation qui a publié le package Snap. S’il s’agissait d’un éditeur vérifié (et que votre fenêtre de terminal prend en charge Unicode), vous verrez une coche verte à côté du nom de l’éditeur. S’il ne peut pas afficher de coche, vous verrez un astérisque
.

Remarques: Tous les commentaires ou informations supplémentaires apparaîtront ici.

Les canaux Snap

Vous pouvez utiliser l’option info pour obtenir une description d’un package snap.

snap info gtk-common-themes

Pour ce faire, nous tapons ce qui suit:

le

Nous pouvons voir le canal suivi par le package et la version du logiciel dans les packages snap de chacun des quatre canaux. Dans la plupart des cas, vous devez rester sur le canal stable.

Un package instantané vérifie quatre fois par jour si une version plus récente du logiciel est disponible sur la chaîne qu’il regarde ou «suit». Si vous souhaitez modifier le canal suivi par un package de capture, vous pouvez utiliser les options d’actualisation et de canal.

sudo snap refresh gtk-common-themes --channel=beta

Pour ce faire, nous tapons ce qui suit:

le

Si une version plus récente du logiciel était disponible, elle serait installée, mais ce n’était pas le cas ici. Cependant, le package snap suit maintenant le canal bêta. Dès qu’une nouvelle version bêta est publiée, elle est automatiquement téléchargée et mise à jour.

Vous pouvez utiliser l’option –list pour vérifier si des mises à jour sont disponibles pour l’un des packages d’instantanés installés sur votre ordinateur.

sudo snap refresh --list

Pour ce faire, nous tapons ce qui suit:

le

On vous dira si l’un des canaux suivis par les packages Snap sur votre ordinateur contient des versions logicielles plus récentes.

sudo snap refresh gtk-common-themes

Si une version plus récente du logiciel est disponible, vous pouvez utiliser l'option d'actualisation, comme illustré ci-dessous, pour forcer manuellement une actualisation:

le

Suppression d’un package Snap

sudo snap remove gimp

Pour désinstaller un package snap, vous pouvez utiliser l'option de suppression, comme illustré ci-dessous:

le

La feuille de triche Snap

L’utilisation des packages snap est assez simple, mais nous avons compilé une liste de quelques commandes qui vous aideront:
Pour rechercher un package: snap find package_name
Pour installer un package: sudo snap install nom_package
Pour voir tous les packages installés: liste instantanée
Pour obtenir des informations sur un seul package: snap info nom_package
Pour changer de canal, un package effectue le suivi des mises à jour: sudo snap refresh nom_package –channel = nom_canal
Pour voir si les mises à jour sont prêtes pour les packages installés: sudo snap refresh –list
Pour mettre à jour manuellement un package: sudo snap refresh nom_package

Pour désinstaller un package: sudo snap remove nom_package