====== Le système de paquets snap ======
* Objet : Installer, gérer les paquets snaps
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : //Utilsation des nouveaux systèmes de paquets snap ou comment utiliser cette alternative pour installer des logiciels plus recents où absents des dépôts officiels //
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi :
* Création par [[user>deuchdeb]] 03/03/2018
* Testé partie usage basique <[[user>deuchdeb]]> le 07/03/2018
* Mis à jour par <[[user>--gilles--]]> le 04/12/2021
* Relu par <[[user>ubub]]> le 06/12/2021
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=255823 | Les paquets snap]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
**Nota :**
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
====== Format Snap ======
Le format **snap** vise à permettre l'installation de nouvelles versions de logiciels dans les systèmes Linux, tout en apportant aux développeurs la facilité de distribution, la fiabilité et la sécurité.
Un paquet snap contrairement aux paquets rpm ou deb, pourra s'installer sur différentes distributions. Un logiciel au format snap pourra fonctionner aussi bien sous Ubuntu, Debian, Linux-Mint mais aussi sous Fedora, Opensuse ou Gentoo et bien d'autres.
Avec le format snap, pour recevoir des nouvelles versions de logiciels, les utilisateurs n'auront plus à mettre en jeu la stabilité de leur système par l'ajout de dépôts exotiques. Ils pourront installer des paquets snap avec des commandes très simples. L'application s'exécute ensuite de manière isolée, ce qui accroît la stabilité et la sécurité du système. Le paquet ''.snap'' inclut l'application et peut contenir aussi ses dépendances ; en contrepartie d'un paquet plus lourd, ceux-ci peuvent donc faire cohabiter plusieurs versions de mêmes dépendances au sein d'un même système Linux et en facilite la distribution en ligne et hors ligne.
Les paquets ''.snap'' ne remplacent pas les paquets ''.deb'' classiques : le cœur du système (noyau, environnements graphiques, logiciels de base) continue d'être géré à l'aide des paquets traditionnels de Debian. Les paquets ''.snap'' s'ajoutent à l'existant afin de fournir un mode de distribution sûr pour les logiciels tiers ou les versions non validées par le système (la dernière version de votre logiciel préféré par exemple).
===== Qu'est ce qu'un snap ? =====
Un snap:
* est un système de fichier SquashFS : [[https://fr.wikipedia.org/wiki/SquashFS]] contenant le code de l'application et un fichier spécifique de métadonnées ''snap.yaml''. Il est en lecture seule et, une fois installé, dispose d'une zone accessible en écriture.
* est autonome. Il inclut la plupart des librairies et des outils dont il a besoin et peut être mis à jour ou restauré sans affecter le reste du système.
* est séparé du reste du système d'exploitation et des autres applications grâce à des mécanismes de sécurité, mais il peut échanger du contenu et fonctionner avec d'autres snaps suivant des règles précises contrôlées par l'utilisateur et les paramétrages généraux du système d'exploitation.
===== Pourquoi certains utilisateurs Linux n'aiment-ils pas les paquets snaps ? =====
perso, le simple fait que les paquets ne soient pas audités/testés par Debian, me suffit pour ne pas les utiliser.
Jamais utilisé de snap @home.
Merci arpinux ;)
==== Pré-requis ====
Mettre à jour :
su -
apt update && apt upgrade
Ensuite pour que les paquets snap fonctionnent il faut qu'une tâche tourne en arrière plan.
Et c'est pour cela qu'avant toute chose, il faut **//installer//** le paquet **//snapd//** sur votre système.
S'il n'est pas installé rien ne pourra se faire. 8-o
Ce démon vérifie l'intégrité des paquets snap, les confine dans leur propre espace restreint et agit comme un lanceur.
apt install snapd
Après cela, installez la base de snap ( core ) et recréez-là ( refresh ).
snap install core && snap refresh core
À l'heure où est écrit cet ajout, un bug impose de redémarrer :
reboot
===== Usage basique de gestion des paquets snap =====
__Installer un paquet snap__:
snap install Nom_Du_Snap
Plus d'informations et la liste des options de la commande **snap** en consultant le manuel (''man snap'').
Les snaps sont installés dans ///home/utilisateur/snap//.
__Mettre à jour tous les paquets snap installés__ :
snap refresh
__Logiciels disponibles sous Snap__:
snap find
Seuls quelques paquets snap disponibles seront listés
__Liste des logiciels installés sur votre ordinateur__:
snap list
__Rechercher un paquet particulier__: \\
//Admettons que nous recherchons Libreoffice//.
snap find libre
Name Version Developer Notes Summary
librealsense-chenhan 1.12.0-snap1 chenhan - librealsense
libreoffice 6.0.1.1 canonical - LibreOffice is a powerful office suite including word processing and creation of spreadsheets, slideshows and databases
librealsense 1.12.1-snap3 canonical - librealsense
retroarch 1.7.1 libretro - RetroArch
__Supprimer un paquet__ :
snap remove Nom_Du_Snap
__Mettre à jour un seul paquet__:
snap refresh Nom_Du_Snap_
__Passer un snap en version Beta__:
snap refresh Nom_Du_Snap --channel=beta
__Revenir en arrière si quelque chose c'est mal passé__:
snap revert Nom_Du_Snap
__
Voir les modifications récentes__:
Exécutez la commande suivante pour afficher une liste des modifications snap. \\
Cette option affiche la liste des paquets Snap que vous avez récemment installés, actualisés (mise à jour) et supprimés, et aussi quand ces opérations ont eu lieu.
snap changes
===== Astuces =====
__Installer un paquet snap téléchargé__:
Admettons que vous ayez trouvé un paquet snap sur internet sur le site d'un développeur et que vous l'ayez téléchargé et vous voulez l'installer.
D'abord, vous ne devriez pas faire ça. Rien ne vous garantit que ce que vous installez est vraiment ce que vous vouliez ou pensiez installer.
Cependant, il y a un cas où c'est tout à fait valable: quand vous êtes développeur et que vous voulez l'installer sur votre système pour le tester! Bien sûr, vous n'avez pas de signatures d'assertion instantanée ici, mais nous devons quand même fournir un moyen de dire "ok, je sais que j'ai pleinement confiance en ce paquet, laissez-moi y aller".
si vous faites:
snap install Nom_Paquet_Snap.snap
Vous allez avoir un message d'erreur:
error: cannot find signatures with metadata for snap "Nom_Paquet_Snap"
Il va donc falloir imiter une installation depuis le magasin officiel.
Cela se fait en deux étapes avec **assert**.
Prenons l'exemple donné sur la documentation officielle:
snap ack nethack_2.assert
snap install nethack_2.snap
nethack 3.4.2-2 from 'ogra' installed
Et voilà
===== Désinstaller les paquets snap et snapd définitivement =====
==== Visualiser les paquets snap ====
Ceci montrera les paquets snap tels que Firefox ( snap ), le snap-store, les thèmes et autres paquets de base installés par défaut.
snap list
==== Arrêter les services snapd ====
systemctl disable snapd.service
systemctl disable snapd.socket
disable snapd.seeded.service
==== Supprimer les paquets snap ====
Supprimez les paquets snap dans l'ordre suivant. Supprimez d'abord Firefox, deuxièmement, snap-store et les autres paquets que vous voyez dans la sortie de commande snap list dans votre système.
snap remove --purge firefox
snap remove --purge snap-store
Exemple d'autre paquet à supprimer, ( il faudra supprimer tous les paquets visibles de la commande snap list ) :
snap remove --purge gtk-common-themes
==== Supprimer le daemon snapd ====
apt autoremove --purge snapd
===== Voir aussi =====
* [[https://snapcraft.io/ | site officiel]]
* [[https://tutorials.ubuntu.com/tutorial/basic-snap-usage#0 | Doc officielle en anglais pour une utilisation basique]]
* [[https://tutorials.ubuntu.com/tutorial/advanced-snap-usage#0 | Doc officielle en anglais pour une utilisation avancée]]