Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
snap [Le 07/10/2024, 17:38]
geole [Extension du confinement] erreur : trop d'arguments pour la commande
snap [Le 28/06/2025, 16:20] (Version actuelle)
krodelabestiole mise en forme / le wiki devrait être autonome, copier les infos plutôt que ces "références" pointant ailleurs
Ligne 4: Ligne 4:
 ====== Format Snap ====== ====== 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é.+Le format **[[wpfr>​Snap_(gestionnaire_de_paquets)|snap]]** permet ​l'​installation de logiciels dans les systèmes Linux, tout en facilitant leur distribution pour les développeurs.
  
 +Un paquet ''​.snap''​ inclut une application et ses dépendances et les isole du reste du système ; en contrepartie d'un volume plus élevé, il permet de faire cohabiter plusieurs versions de mêmes dépendances au sein d'un même système Linux, indépendamment de la version de celui-ci.\\
 +En pratique, ceci permet, en empaquetant une application au format snap, de la rendre disponible sur absolument toutes les [[:​distributions]] GNU/Linux.
  
-Avec le format snap, pour recevoir des nouvelles versions de logiciels, les utilisateurs n'ont plus à mettre en jeu la stabilité de leur système par l'​ajout de dépôt personnel (PPA). Ils peuvent récupérer un paquet ''​.snap''​ distribué par l'​éditeur via le gestionnaire de paquets **Snappy**. L'​application associée est alors exécutée de manière isolée, renforçant ​la stabilité et la sécurité du systèmeLe paquet ''.snap''​ inclut l'​application ​et peut contenir aussi ses dépendances ; en contrepartie d'un volume plus élevé, il permet de 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** sont pour la plupart centralisés sur la plateforme [[https://​snapcraft.io/​|Snapcraft]] et disponibles sur Ubuntu depuis le [[:snap store|centre d'applications]],​ aussi appelé //​[[https://​snapcraft.io/snap-store|Snap Store]]//, ​et qui est lui-même "un snap".
  
-Les paquets ''​.snap''​ ne remplacent pas les paquets ''​.deb''​ classiques : le cœur du système Ubuntu (noyau, environnements graphiques, logiciels de base) reste géré à partir des paquets issus de Debian. ​Les paquets ''​.snap'' s'​ajoutent ​à l'existant afin de fournir un mode de distribution sûr pour les logiciels tiers ou pour les versions non validées par le système ​(par exemple pour la dernière version de votre logiciel préféré).+**Snap** et son dépôt principal snapcraft sont maintenus par [[:​Canonical]],​ l'​éditeur d'​Ubuntu. 
 + 
 +Les paquets ''​.snap''​ ne remplacent pas toujours ​les paquets ''​[[:deb|.deb]]''​ classiques : le cœur du système Ubuntu (noyau, environnements graphiques) reste géré à partir des paquets issus de [[:​distributions#​Debian]].\\ 
 +Mais en facilitant la distributions des applications pour toutes les [[:​distributions]] Linux, **snap** donne accès à une logithèque beaucoup plus importante que ce qui était logistiquement possible avec le format [[:deb]] seul 
 + 
 +Par ailleurs grâce au format **snap**, les utilisateurs n'ont plus à mettre en jeu la sécurité et la fiabilité de leur système par l'ajout de dépôts personnels ​([[:PPA]]). 
 + 
 +<note tip> 
 +Il existe une alternative communautaire à **snap**, il s'agit de **[[:​Flatpak]]**,​ dont le dépôt principal est [[https://​flathub.org/​|Flathub]]. 
 +</​note>​
  
 ===== Nature et propriétés d’un snap ===== ===== Nature et propriétés d’un snap =====
Ligne 55: Ligne 66:
  
 ==== En ligne de commande ==== ==== En ligne de commande ====
 +
 Vous pouvez aussi passer par un [[:​terminal]] pour installer une application snap : Vous pouvez aussi passer par un [[:​terminal]] pour installer une application snap :
   sudo snap install nom_du_snap   sudo snap install nom_du_snap
Ligne 63: Ligne 75:
  
 ===== Mise à jour des applications ​ ===== ===== Mise à jour des applications ​ =====
 +
 ==== Cas général ==== ==== Cas général ====
 +
 Mise à jour des applications : Mise à jour des applications :
 +
 +Les applications se mettent ​ à jour automatiquement au démarrage de l'​ordinateur par le [[:​systemd|service]] snapd et régulièrement toutes les six heures. La vérification est possible par cette commande [[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22840295#​p22840295|snap refresh --time]].
 +Le déclenchement immédiat peut être provoqué par cette commande
   sudo snap refresh   sudo snap refresh
 +
 ==== Mise à jour du magasin d'​application snap-store ==== ==== Mise à jour du magasin d'​application snap-store ====
 +
 Lorsque le magasin d’application Snap Store doit être mis à jour, l'​opération ''​snap refresh''​ ne fonctionne pas. Lorsque le magasin d’application Snap Store doit être mis à jour, l'​opération ''​snap refresh''​ ne fonctionne pas.
  
 L'​utilisateur est généralement alerté par un message « **mise à jour du snap "​snap-store"​ en attente** » à l’ouverture de sa session. L'​utilisateur est généralement alerté par un message « **mise à jour du snap "​snap-store"​ en attente** » à l’ouverture de sa session.
  
-En effet, la commande ''​snap refresh''​ ne permet pas de mettre à jour le magasin d'​application qui reste actif tout au long de l'​opération. Il est donc nécessaire de désactiver le magasin avant de lancer la mise à jour. Cela peut se faire en ligne de commande comme suit : +En effet, la commande ''​snap refresh''​ ne permet pas de mettre à jour le magasin d'​application qui reste actif tout au long de l'​opération. Il est donc nécessaire de désactiver le magasin avant de lancer la mise à jour. Cela peut se faire en ligne de commande comme suit :(([[https://​askubuntu.com/​questions/​1412575/​pending-update-of-snap-store | Pending Update of Snap Store]]. Question publiée le 06/06/2022 sur le forum Ask Ubuntu et résolue.))
   snap-store --quit   snap-store --quit
   snap refresh   snap refresh
  
-Référence :​ [[https://​askubuntu.com/​questions/​1412575/​pending-update-of-snap-store | Pending Update of Snap Store]]. Question publiée le 06/06/2022 sur le forum Ask Ubuntu et résolue.+===== Applications =====
  
- +Voici une liste non exhaustive ​d'​applications ​disponibles sous Snap :
-===== Logiciels ===== +
-Voici une liste non exhaustive ​de logiciels ​disponibles sous Snap :+
  
   * [[:​Blender]]   * [[:​Blender]]
   * Brackets   * Brackets
   * [[:Brave]]   * [[:Brave]]
-  * [[croc|Croc,​ partage de fichiers/​répertoires en pair à pair]]+  * [[:croc|Croc, partage de fichiers/​répertoires en pair à pair]]
   * [[:​gravit-designer|Gravit Designer]]   * [[:​gravit-designer|Gravit Designer]]
   * [[firefox|firefox]]   * [[firefox|firefox]]
   * fractal, client pour réseau [[Matrix]]   * fractal, client pour réseau [[Matrix]]
-  * [[gimp|gimp]]+  * [[:GIMP]]
   * Hiri   * Hiri
   * [[:​handbrake|handbrake]]   * [[:​handbrake|handbrake]]
Ligne 96: Ligne 112:
   * Mailspring   * Mailspring
   * [[:​Minetest]]   * [[:​Minetest]]
-  * [[okular|Okular : l'​afficheur de documents]]+  * [[:Okular]] : l'​afficheur de documents
   * [[:​keepassxc]]   * [[:​keepassxc]]
   * [[:Signal]]   * [[:Signal]]
Ligne 110: Ligne 126:
 La commande suivante affiche la liste des //logiciels installés//​ au format Snap dans le système : La commande suivante affiche la liste des //logiciels installés//​ au format Snap dans le système :
   snap list   snap list
- 
  
 ===== Suppression ===== ===== Suppression =====
 +
 ==== Supprimer un paquet ==== ==== Supprimer un paquet ====
 +
 La suppression d’un paquet snap est commandée par : La suppression d’un paquet snap est commandée par :
   snap remove mon_logiciel   snap remove mon_logiciel
Ligne 129: Ligne 146:
 Ils peuvent être supprimés individuellement en indiquant le numéro d’instantané (ou numéro de « snapshot ») visé : Ils peuvent être supprimés individuellement en indiquant le numéro d’instantané (ou numéro de « snapshot ») visé :
   snap forget numéro_snapshot   snap forget numéro_snapshot
 +
 ==== Faire du ménage de manière radicale ==== ==== Faire du ménage de manière radicale ====
 +
 Référence : [[https://​superuser.com/​questions/​1310825/​how-to-remove-old-version-of-installed-snaps|How to remove old version of installed snaps]]. Question publiée le 04/04/2018 sur le forum SuperUser et résolue. Référence : [[https://​superuser.com/​questions/​1310825/​how-to-remove-old-version-of-installed-snaps|How to remove old version of installed snaps]]. Question publiée le 04/04/2018 sur le forum SuperUser et résolue.
  
Ligne 135: Ligne 154:
  
 === Évaluer la place occupée par les snap === === Évaluer la place occupée par les snap ===
 +
 Espace disque occupé par chaque paquet snap installé :​ Espace disque occupé par chaque paquet snap installé :​
   sudo du -csh /snap/* | sort -rh   sudo du -csh /snap/* | sort -rh
Ligne 143: Ligne 163:
  
 === Vérifier la liste des snap qui seront supprimés === === Vérifier la liste des snap qui seront supprimés ===
 +
 Afficher les paquets snap installés, actifs ou non : Afficher les paquets snap installés, actifs ou non :
   snap list --all   snap list --all
Ligne 155: Ligne 176:
  
 === Suppression proprement dite === === Suppression proprement dite ===
 +
 Si la liste vous convient, vous pouvez saisir la commande suivante : Si la liste vous convient, vous pouvez saisir la commande suivante :
   LANG=C snap list --all | awk '/​disabled/​{print $1, $3}' | while read snapname revision ; do echo $snapname $revision ; sudo snap remove --purge "​$snapname"​ --revision="​$revision"​ ; done   LANG=C snap list --all | awk '/​disabled/​{print $1, $3}' | while read snapname revision ; do echo $snapname $revision ; sudo snap remove --purge "​$snapname"​ --revision="​$revision"​ ; done
Ligne 173: Ligne 195:
  
 ==== Supprimer et bloquer les paquets snap ==== ==== Supprimer et bloquer les paquets snap ====
 +
 Vous ne souhaitez plus utiliser les paquets snap pour diverses raisons ? **C'​est possible**. Vous ne souhaitez plus utiliser les paquets snap pour diverses raisons ? **C'​est possible**.
 <note important>​Rappel : évaluez l’existence d’une version en [[deb|paquet Debian]] pour les applications dont vous voudriez une alternative.</​note>​ <note important>​Rappel : évaluez l’existence d’une version en [[deb|paquet Debian]] pour les applications dont vous voudriez une alternative.</​note>​
Ligne 179: Ligne 202:
   * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22458861#​p22458861|Supprimer et bloquer les snaps]]. Procédure pas à pas partagée le 28/05/2021 sur le forum Ubuntu francophone ([[https://​archive.wikiwix.com/​cache/​index2.php?​url=https%3A%2F%2Fforum.ubuntu-fr.org%2Fviewtopic.php%3Fpid%3D22458861%23p22458861#​federation=archive.wikiwix.com&​tab=url|archive]]).   * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22458861#​p22458861|Supprimer et bloquer les snaps]]. Procédure pas à pas partagée le 28/05/2021 sur le forum Ubuntu francophone ([[https://​archive.wikiwix.com/​cache/​index2.php?​url=https%3A%2F%2Fforum.ubuntu-fr.org%2Fviewtopic.php%3Fpid%3D22458861%23p22458861#​federation=archive.wikiwix.com&​tab=url|archive]]).
   * [[https://​haydenjames.io/​remove-snap-ubuntu-22-04-lts/​|Remove Snap Ubuntu 22.04 LTS]]. Article (**en anglais**) de Hayden James publié le 01/10/2023 sur Blog Linux. Mention supplémentaire sur l’utilisation de **apt**.   * [[https://​haydenjames.io/​remove-snap-ubuntu-22-04-lts/​|Remove Snap Ubuntu 22.04 LTS]]. Article (**en anglais**) de Hayden James publié le 01/10/2023 sur Blog Linux. Mention supplémentaire sur l’utilisation de **apt**.
 +
 ===== Suivi des paquets installés ===== ===== Suivi des paquets installés =====
 +
 <​note>​Les commandes et le script ''​shell''​ mentionnés dans cette section sont identiques à ceux de la section [[snap#​Suppression|Suppression]] supra.</​note>​ <​note>​Les commandes et le script ''​shell''​ mentionnés dans cette section sont identiques à ceux de la section [[snap#​Suppression|Suppression]] supra.</​note>​
  
Ligne 197: Ligne 222:
 </​file>​ </​file>​
  
-Comme indiqué ci-dessus, la commande ''​flatpak''​ équivalente est la suivante : 
-     ​flatpak list 
 ===== Répertoires de référence ===== ===== Répertoires de référence =====
 +
 Un système d’exploitation présente une arborescence de dossiers et fichiers organisés par défaut. En l’occurrence les fichiers de configuration sont habituellement trouvés dans le dossier **/etc**, les journaux (« log files ») dans le dossier **/​var/​log**. Un système d’exploitation présente une arborescence de dossiers et fichiers organisés par défaut. En l’occurrence les fichiers de configuration sont habituellement trouvés dans le dossier **/etc**, les journaux (« log files ») dans le dossier **/​var/​log**.
  
Ligne 215: Ligne 239:
  
 Dans le cas de l’installation standard d'une application snap, l'​accès est restreint aux répertoires et fichiers de l'​utilisateur,​ stockés dans le dossier de ce dernier. L'​accès par les liens symboliques qui pointent à l'​extérieur des répertoires de l'​utilisateur est refusé. Cela correspond à la notion de //​confinement//​. Dans le cas de l’installation standard d'une application snap, l'​accès est restreint aux répertoires et fichiers de l'​utilisateur,​ stockés dans le dossier de ce dernier. L'​accès par les liens symboliques qui pointent à l'​extérieur des répertoires de l'​utilisateur est refusé. Cela correspond à la notion de //​confinement//​.
 +
 ===== Contournement des répertoires ===== ===== Contournement des répertoires =====
 +
 ==== Approches en mode avancé ==== ==== Approches en mode avancé ====
 +
   * Technique en mode « bind »(([[https://​askubuntu.com/​questions/​1040194/​how-to-use-snap-packages-when-home-is-not-home-user|How to use Snap Packages when $HOME is not /​home/​$USER?​]] Question posée le 25/05/2018 sur le forum AskUbuntu et résolue.)) :​ elle repose sur le montage des dossiers ciblés par lien physique (option ''​--bind''​ de la commande ''​mount''​). Dans le cas particulier des dossiers racine des utilisateurs,​ une montée de version de Snapd est préconisée,​ avec une configuration spécifique du chemin des dossiers utilisateur à l’issue de la mise à niveau :   * Technique en mode « bind »(([[https://​askubuntu.com/​questions/​1040194/​how-to-use-snap-packages-when-home-is-not-home-user|How to use Snap Packages when $HOME is not /​home/​$USER?​]] Question posée le 25/05/2018 sur le forum AskUbuntu et résolue.)) :​ elle repose sur le montage des dossiers ciblés par lien physique (option ''​--bind''​ de la commande ''​mount''​). Dans le cas particulier des dossiers racine des utilisateurs,​ une montée de version de Snapd est préconisée,​ avec une configuration spécifique du chemin des dossiers utilisateur à l’issue de la mise à niveau :
  
Ligne 229: Ligne 256:
  
   * Montage des partitions sur des points accessibles à un logiciel en snap : ''​$HOME/'',​ ''/​media/'',​ ''/​mnt/''​ ou ''/​run/​media/''​. La documentation officielle de Snapcraft peut aussi être consultée en matière de gestion des interfaces(([[https://​snapcraft.io/​docs/​interface-management|Interface management]]. Documentation officielle de Canonical Snapcraft. Dernière mise à jour : janvier 2024.)).   * Montage des partitions sur des points accessibles à un logiciel en snap : ''​$HOME/'',​ ''/​media/'',​ ''/​mnt/''​ ou ''/​run/​media/''​. La documentation officielle de Snapcraft peut aussi être consultée en matière de gestion des interfaces(([[https://​snapcraft.io/​docs/​interface-management|Interface management]]. Documentation officielle de Canonical Snapcraft. Dernière mise à jour : janvier 2024.)).
- 
  
  
 ==== Extension du confinement ==== ==== Extension du confinement ====
 +
 Les applications snap permettent malgré tout d'​utiliser normalement deux autres répertoires :​ **/mnt** et **/media**. Les applications snap permettent malgré tout d'​utiliser normalement deux autres répertoires :​ **/mnt** et **/media**.
 Les sous-répertoires peuvent être quelconques. Ils doivent être accessibles par les applications standard de l'​utilisateur. Les sous-répertoires peuvent être quelconques. Ils doivent être accessibles par les applications standard de l'​utilisateur.
Ligne 259: Ligne 286:
 <​note>​Le connecteur [[https://​snapcraft.io/​docs/​cups-control-interface|cups-control]] permet de gérer l'​imprimante.</​note>​ <​note>​Le connecteur [[https://​snapcraft.io/​docs/​cups-control-interface|cups-control]] permet de gérer l'​imprimante.</​note>​
  
-                            -+===== Voir aussi =====
  
- +  ​* [[https://​snapcraft.io/​docs |Canonical Snapcraft]] :​ documentation officielle ​en anglais.
- +
-===== Voir aussi ===== +
-  ​* [[https://​snapcraft.io/​docs |Canonical Snapcraft]] :​ documentation officielle.+
   * [[https://​open-store.io/​ |OpenStore]] :​ logithèque officielle de programmes snap pour Ubuntu Touch.   * [[https://​open-store.io/​ |OpenStore]] :​ logithèque officielle de programmes snap pour Ubuntu Touch.
   * [[https://​snapcraft.io/​store |Snap Store]] : logithèque officielle de programmes snap pour Linux, hébergée par Canonical.   * [[https://​snapcraft.io/​store |Snap Store]] : logithèque officielle de programmes snap pour Linux, hébergée par Canonical.
-  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22013312#​p22013312 |Erreur: unable to contact snap store (snap derrière un proxy)]]. Question posée le 28/11/2018 sur le forum et résolue. Accès à Snap Store par un proxy sans authentification requise. 
  • snap.1728315493.txt.gz
  • Dernière modification: Le 07/10/2024, 17:38
  • par geole