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 26/02/2024, 12:43]
lyondif02 [Utilisation] reformulation
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 24: Ligne 35:
  
 ===== Installer snapd ===== ===== Installer snapd =====
-Snap est pré-installé ​avec toutes les versions d’Ubuntu… en version bureau, mais non sur la version ​serveur.\\+Snap est pré-installé ​dans Ubuntu ​depuis la version ​16.04 LTS au sein de la configuration ​bureau ​(« Desktop »)(([[http://​www.webupd8.org/​2015/​04/​ubuntu-desktop-to-eventually-switch-to.html|Ubuntu Desktop To Eventually Switch To Snap Packages By Default]]. Article publié le 03/04/2015 sur Web Upd8.))(([[https://​askubuntu.com/​questions/​618471/​why-is-ubuntu-moving-to-snap-packages|Why is Ubuntu moving to Snap packages?]] Sujet publié le 05/05/2015 sur le forum AskUbuntu. Évocations de l’intérêt de l’approche Snap en coexistence avec les paquets Debian.)), mais non au sein de la configuration ​serveur. 
 Vous pouvez l'​installer avec la commande suivante : Vous pouvez l'​installer avec la commande suivante :
-<​code>​sudo apt install snapd</​code>​ +  ​sudo apt install snapd 
-<note warning>​Si votre serveur est un [[wpfr>Serveur_dédié_virtuel|VPS]] hébergé sur un serveur hôte avec [[wpfr>​OpenVZ|OpenVZ]], ​snap ne fonctionnera pas ou fonctionnera de manière dégradée. La commande suivante permet de connaitre la technologie de virtualisation sous-jacente :​ + 
-<code bash>systemd-detect-virt +<note warning>​Si votre serveur est un [[wpfr>Serveur dédié virtuel|VPS]] hébergé sur un serveur hôte avec [[wpfr>​OpenVZ|OpenVZ]], ​Snap ne fonctionnera pas ou fonctionnera de manière dégradée. La commande suivante permet de connaitre la technologie de virtualisation sous-jacente :​ 
-# au besoin, faire précéder la commande de : sudo +  systemd-detect-virt 
-# retour attendu dans le cas de OpenVZ : +  # au besoin, faire précéder la commande de : sudo 
-openvz</​code>​</​note>​+  # retour attendu dans le cas de OpenVZ : openvz 
 +</​note>​
 ===== Installer une application snap ===== ===== Installer une application snap =====
 Désormais vous pouvez directement installer des applications snap en passant par la [[:​gnome-software|logithèque Ubuntu]] comme pour les autres applications. Désormais vous pouvez directement installer des applications snap en passant par la [[:​gnome-software|logithèque Ubuntu]] comme pour les autres applications.
Ligne 53: 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
  
 Plus d'​informations,​ dont la liste des options de la commande **snap**, sont disponibles en consultant le manuel (''​man snap''​).\\ Plus d'​informations,​ dont la liste des options de la commande **snap**, sont disponibles en consultant le manuel (''​man snap''​).\\
-Il peut être notamment intéressant d'​utiliser l'​option //​%%--classic%%//​ qui évite le confinement… et permet par exemple d'​imprimer vers des imprimantes disponibles((https://​forum.kubuntu-fr.org/​viewtopic.php?​id=2030312)):​+Il peut être notamment intéressant d'​utiliser l'​option //​%%--classic%%//​ qui évite le confinement… et permet par exemple d'​imprimer vers des imprimantes disponibles(([[https://​forum.kubuntu-fr.org/​viewtopic.php?​id=2030312|Pas d'​imprimante dans Gimp]]. Question publiée le 05/09/2018 sur le forum Kubuntu francophone et résolue.)):
   sudo snap install --classic nom_du_snap   sudo snap install --classic nom_du_snap
  
 ===== 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. 
  
-L'​utilisateur est généralement alerté par un message « **mise ​à jour du snap "​snap-store"​ en attente** » au démarrage de son ordinateur.+Lorsque le magasin d’application Snap Store doit être mis à jour, l'​opération ''​snap refresh''​ ne fonctionne pas.
  
-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 : +L'utilisateur ​est généralement alerté par un message « **mise à jour du snap "snap-store" en attente** » à l’ouverture de sa session.
-<​code>​ +
-snap-store ​--quit +
-snap refresh +
-</​code>​+
  
-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.+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 refresh
  
 +===== Applications =====
  
-===== Logiciels ===== +Voici une liste non exhaustive d'​applications ​disponibles sous Snap :
-Quelques 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 95: Ligne 112:
   * Mailspring   * Mailspring
   * [[:​Minetest]]   * [[:​Minetest]]
-  * [[okular|Okular : l'​afficheur de documents]]+  * [[:Okular]] : l'​afficheur de documents
   * [[:​keepassxc]]   * [[:​keepassxc]]
   * [[:Signal]]   * [[:Signal]]
Ligne 104: Ligne 121:
   * [[:VLC]]   * [[:VLC]]
  
-Quelques Logiciels ​disponibles ​sous Snap, en tapant ​:+La commande suivante affiche une liste de //​logiciels ​disponibles ​et suggérés//​ au format ​Snap :
   snap find   snap find
  
-Liste des logiciels installés ​sur votre ordinateur, en tapant ​:+La commande suivante affiche la liste des //logiciels installés// au format Snap dans le système ​:
   snap list   snap list
- 
  
 ===== Suppression ===== ===== Suppression =====
-==== Pour supprimer ​un paquet ​====+ 
 +==== Supprimer ​un paquet ==== 
 + 
 +La suppression d’un paquet snap est commandée par :
   snap remove mon_logiciel   snap remove mon_logiciel
-conservera ​le profil utilisateur ​pendant 30 jours ( instantané, snapshot ​)+Cela conserve ​le profil utilisateur (instantané ​ou « snapshot »pendant 30 jours. 
 + 
 +La suppression d’un paquet snap et de tous les profils utilisateur associés est commandée par :
   snap remove --purge mon_logiciel   snap remove --purge mon_logiciel
-supprimera complètement le logiciel ainsi que le(s) profil(s) utilisateur(s) relatif(s).\\ + 
-Pour supprimer ​une version d'un paquet :​ +La suppression d’une version dun paquet ​snap, identifiée par son numéro de révision, est commandée par 
-  snap remove --purge mon_logiciel --revision=n°révision +  snap remove --purge mon_logiciel --revision=numéro_révision 
-Les instantanés ​les derniers profils conservés quand on supprime un snap sont consultables via+<​note>​La version et le numéro de révision peuvent être retrouvés par la commande ''​snap list''​ ou ''​snap info mon_logiciel''​.</​note>​ 
 + 
 +Les instantanés ​– les derniers profils conservés quand on supprime un snap – sont affichés par :
   snap saved   snap saved
-et effaçables via +Ils peuvent être supprimés individuellement en indiquant le numéro d’instantané (ou numéro ​de « snapshot ») visé 
-  snap forget numéro_du_snapshot +  snap forget numéro_snapshot
-==== Pour faire du ménage ​de manière radicale ==== +
-voir [[https://​superuser.com/​questions/​1310825/​how-to-remove-old-version-of-installed-snaps]] +
-<note important>​Attention,​ cette commande supprime immédiatement tous les snap désactivés</​note>​ +
-=== constater la place occupée par les snap : === +
- <​code> ​ sudo du -csh /snap/* | sort -rh</​code> ​+
  
-pour chaque version : +==== Faire du ménage de manière radicale ==== 
-  sudo du -csh /snap/nomdusnap/* | sort -rh+ 
 +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. 
 + 
 +<note important>​Attention :​ la commande indiquée supprime immédiatement tous les paquets snap désactivés.</​note>​ 
 + 
 +=== Évaluer la place occupée par les snap === 
 + 
 +Espace disque occupé par chaque paquet snap installé :​ 
 +  sudo du -csh /snap/* | sort -rh 
 +  # affichage trié ici par ordre décroissant sur le volume d’espace disque occupé 
 + 
 +Espace disque occupé par chaque version ​installée d’un paquet snap donné 
 +  sudo du -csh /snap/nom_du_snap/* | sort -rh
  
 === 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 :
   snap list --all   snap list --all
  
-  * Repérer les lignes avec les notions ​//​désactivé//​ (ou sur un system ​en anglais ​//​disabled//​. ​Dans la suite vous devrez ​adapter les commandes par le terme approprié)+Repérer les lignes avec la note //​désactivé//​ (ousur un système ​en anglais : ​//​disabled//​)Par la suiteadapter les commandes par le terme approprié. 
-  ​* ​Veillez à ce qu'au moins version ​des snap que vous souhaitez garder ne soit pas repérer ​//​désactivé//​. En effet la commande ​suivante supprime ​sans distinction tous les snap marqués comme tel+ 
-  * Pour afficher ​la liste de ceux qui seront ​supprimés <​code>​LANG=C snap list --all | awk '/​disabled/​{print}'​</​code>​ +Veillez à conserver ​au moins une version ​de paquet ​snap à l’état non //​désactivé//​. En effet la commande ​proposée par la suite supprimera ​sans distinction tous les paquets ​snap indiqués en argument
-=== suppression ​=== + 
-Si la liste vous convient vous pouvez ​taper la commande suivante : +Afficher ​la liste des paquets ​qui seront ​supprimés :​ 
-<​code>​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</code> ​ +  ​LANG=C snap list --all | awk '/​disabled/​{print}'​ 
-Vous pourrez constater le gain de place avec <​code>​df -h</​code>​ et <​code>​sudo du -csh /snap/* | sort -rh</code>+  # la spécification ici de la variable LANG permet un filtre sur le terme anglais "​disabled"​ 
 + 
 +=== Suppression proprement dite === 
 + 
 +Si la liste vous convientvous 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 
 +ou, en version sur plusieurs lignes : 
 +  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 
 + 
 +Vous pourrez constater le gain de place avec les commandes suivantes :​ 
 +  # espace disque global : 
 +  ​df -h 
 +  # espace disque par paquet snap : 
 +  ​sudo du -csh /snap/* | sort -rh 
 + 
 +==== Supprimer et bloquer les paquets snap ==== 
 + 
 +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>​ 
 + 
 +Références :​ 
 +  * [[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**. 
 + 
 +===== 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>
  
-==== Supprimer et bloquer les snaps ==== +L'​application ne fait pas nécessairement un ménage parfait. Il faut s'​assurer que des paquets ​désactivés ​n'ont pas été conservés :​
-Vous ne souhaitez plus utiliser les snaps pour certaines raison : **c'​est possible** +
-<note important>​Rappel : Regardez si une version en [[deb|Paquet Debian]] existe pour les applications dont vous voudriez une alternative</​note>​ +
-[[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22458861#​p22458861|voir la procédure sur un post du forum Ubuntu]] +
-[[https://​haydenjames.io/​remove-snap-ubuntu-22-04-lts/​|un autre article qui explique en plus comment permettre d'​utiliser apt]] **en Anglais**. +
-===== Suivi des paquets installés. ===== +
-L'​application ne fait pas nécessairement un ménage parfait. Il faut s'​assurer que des paquets ​déactivés ​n'ont pas été conservés.+
   LANG=C snap list --all | grep "​disabled"​   LANG=C snap list --all | grep "​disabled"​
-Pour chaque ligne trouvée, il faut supprimer le paquet devenu inutile avec la commande+Pour chaque ligne trouvée, il faut supprimer le paquet devenu inutile avec la commande :
   snap remove nom_logiciel --revision=9999   snap remove nom_logiciel --revision=9999
-en renseignant le numéro de révision par la bonne valeur qui a été obtenue.\\ +en renseignant le numéro de révision ​(exemple ici : 9999) par la bonne valeur qui a été obtenue.\\ 
-Il est possible d'​automatiser ce travail via ce petit script ((source: ​https://​askubuntu.com/​a/​1040131/​385361)):​+Il est possible d'​automatiser ce travail via ce petit script(([[https://​askubuntu.com/​a/​1040131/​385361|How to remove disabled (unused) snap packages with a single line of command?]] Question publiée le 15/05/2018 sur le forum AskUbuntu et résolue.)) :
 <file - bin/​supprime-snap-désactivé.sh>​ <file - bin/​supprime-snap-désactivé.sh>​
 #!/bin/sh #!/bin/sh
Ligne 164: Ligne 222:
 </​file>​ </​file>​
  
-Comme indiqué ci-dessus, la commande flatpak équivalente est la suivante : +===== Répertoires de référence ​===== 
-     ​flatpak list + 
-===== Les répertoires ​===== +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**. 
-Si on est habitué à accéder pour lire/​modifier tel ou tel fichier ​de configuration, ​de log…, il faut savoir qu'ils ne sont plus dans l'​arborescence par défaut du système comme **/etc/** ou **/var/log/**.\\ + 
-Comme expliqué dans l'article (en) sur freecodecamp.org((https://​www.freecodecamp.org/​news/​managing-ubuntu-snaps/#​understanding-the-snap-file-system)), ​il faut, pour snap, considérer ​les répertoires:​\\ +Les emplacements de ces dossiers et fichiers de référence pour une application installée via Snap sont différents de l’usage du système hôte. 
-  * ''/​snap/''​ + 
-  * ''/​home/$USER/​snap/''​ +Comme David Clinton ​l’explique dans son article (en anglais) sur FreeCodeCamp.org(([[https://​www.freecodecamp.org/​news/​managing-ubuntu-snaps/#​understanding-the-snap-file-system|How to manage Ubuntu Snaps: the stuff no one tells you]]. Article de David Clinton publié le 19/08/2019 sur FreeCodeCamp.org ([[https://​archive.wikiwix.com/​cache/​index2.php?​url=https%3A%2F%2Fwww.freecodecamp.org%2Fnews%2Fmanaging-ubuntu-snaps%2F%23understanding-the-snap-file-system#​federation=archive.wikiwix.com&​tab=url|archive]]).)), les répertoires ​suivants sont à considérer lors du déploiement de logiciel à partir de paquet snap 
-  * ''/​var/​snap/''​ +  * ''/​snap/''​ : dossiers virtuels, en lecture seule, des applications snap en exécution (fichiers snap « montés ») ;​ 
-  * ''/​var/lib/snapd/''​ +  * ''/​var/​snap/''​ : données et fichiers de configuration associés aux applications snap en exécution ;​ 
-Exemple: je souhaite modifier les modèles de [[:gimp]] la documentation ​m'indique que c'​est ​le fichier //​templaterc// ​qui est normalement dans le répertoire ''/​etc/​gimp/​2.10/''​ ou ''​~/​gimp/​…'', ​et bien non! Si je veux celui associé à ma session utilisateur, il est dans ''/​home/​$USER/​snap/​gimp/​105/​.config/​GIMP/​2.10''​+  * ''/​var/​lib/snapd/''​ : base du démon Snap et entrepôt des fichiers snap récupérés ;​ 
 +  * ''/​home/$USER/snap/''​ :  données et fichiers de configuration de la session utilisateur ''​$USER''​. 
 + 
 +Scénario : je souhaite modifier les modèles de [[:Gimp]]
 +  * La documentation indique que le fichier ​concerné, ​//​templaterc//​est normalement ​situé ​dans le répertoire ''/​etc/​gimp/​2.10/''​ ou ''​/home/$USER/​gimp/​…''​
 +  * Dans le cas d’une installation de Gimp par Snaple fichier ​associé à ma session utilisateur ​''​$USER''​ sera disponible ​dans ''/​home/​$USER/​snap/​gimp/​105/​.config/​GIMP/​2.10'' ​(ici, 105 correspond au numéro de révision de la version active de Gimp dans le système utilisé). 
 + 
 +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//​.
  
-Une installation standard d'une application snap permet l'​accès ​ uniquement à la totalité des répertoires et fichiers de l' utilisateur stockés dans sa partition. L'​accès par les liens symboliques pointant à l'​extérieur des répertoires de  l'​utilisateur est refusé. C'est la notion de confinement. 
 ===== Contournement des répertoires ===== ===== Contournement des répertoires =====
-==== Des solutions existent certainement ==== 
-  * La technique en mode  [[https://​askubuntu.com/​questions/​1040194/​how-to-use-snap-packages-when-home-is-not-home-user|bind]]\\ 
-  * La technique en mode  [[https://​snapcraft.io/​docs/​snap-confinement|developpement]]\\ 
-  * Montage des partitions sur des points de montage accessibles à un logiciel en snap, dans : ''​$HOME/''​ ou ''/​media/''​ ou ''/​mnt/''​ ou ''/​run/​media/''​ ( voir [[https://​snapcraft.io/​docs/​interface-management|interface removable-media]] ).\\ 
  
 +==== 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 :
  
-==== Extension du confinement ==== +  # mise à jour de Snapd 
-Les applications snap permettent malgré tout d'​utiliser normalement deux autres répertoires ​ **/mnt** et **/media**. +  snap refresh --channel=latest/edge snapd 
-Les sous-répertoires peuvent être quelconques mais doivent être accessibles par les applications standards de l'​utilisateur. +  # déclaration pour Snap d’un chemin personnalisé des dossiers racine utilisateur (ici : ​/local/home à la place de /home) 
-Cette utilisation est à la discrétion ​de chaque application et est valable pour la totalité des utilisateurs définis et futurs. Il semble que les règles de bases soient: +  ​snap set system homedirs=/​local/​home/​
-  ​*    Non prévu par l'​application. ​   +
-  *    Prévu systématiquement par l'​application. +
-  *    Demandé au moment de  l'​installation de l'​application. +
-  *    A activer ​ après l'​installation.+
  
-Pour savoir si une application ​ peut  utiliser ces répertoires,​ faire la commande: +  * Technique en mode « développement »(([[https://​snapcraft.io/​docs/​snap-confinement|Snap confinement]]. Documentation officielle de Canonical Snapcraft. Dernière mise à jour : juillet 2023.)) : elle consiste en l’installation d’un paquet snap avec l’option spécifique ''​--devmode''​. Cette option est normalement réservée à une étape de développement (avant mise en production). Elle réduit le confinement et étend l’accès du programme snap aux ressources du système :
-<code bash>snap connections NomApplication ​grep  removable</​code>​+
  
-La ligne de retour va indiquer l'​état +  snap install ​--devmode mon_logiciel
-<​code>​removable-media           ​NomApplication:​removable-media  - </​code>​  +
-Ce retour montre que la fonctionnalité est prévue mais qu'​elle n'est pas activée.  ​+
  
-Pour activer la fonctionnalité,​ il est nécessaire de connaître ​un mot de passe administrateur. Il n'y a pas besoin d'être dans le groupe "​sudo"​ Il faut faire la commande suivante: +  * 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.)).
-<code bash>​snap connect NomApplication:removable-media :removable-media</​code>​+
  
-Si on demande à nouveau l'​état,​ la réponse est sans équivoque: 
-<code bash>​removable-media ​          ​gimp:​removable-media ​ :​removable-media ​                 manual</​code>​ 
  
-Remarque: Le connecteur [[https://​snapcraft.io/​docs/​cups-control-interface|cups-control]] permet de gérer l'​imprimante.+==== Extension du confinement ====
  
-                            ​-+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. 
 + 
 +Cette utilisation est laissée à la discrétion de chaque application. Elle est valable pour l’ensemble des utilisateurs définis et futurs. Les règles de base sont les suivantes :​ 
 +  * accès non prévu par l'​application ;​ 
 +  * accès prévu systématiquement par l'​application ;​ 
 +  * accès demandé au moment de l'​installation de l'​application ;​ 
 +  * accès à activer après l'​installation. 
 + 
 +Pour savoir si une application « mon_application » peut utiliser ces répertoires,​ saisir la commande suivante :​ 
 +  snap connections mon_application | grep removable 
 + 
 +La ligne de retour affichera l'​état :​ 
 +  removable-media ​          ​mon_application:​removable-media ​ :​removable-media ​                 - 
 +Ce retour indique que la fonctionnalité est prévue mais qu'​elle n'est pas activée. 
 + 
 +Pour activer la fonctionnalité,​ il est nécessaire de connaître un mot de passe administrateur. L’appartenance au groupe //sudo// n’est pas requise. Voici la commande à saisir : 
 +  snap connect mon_application:​removable-media :​removable-media 
 +   
 +Si la commande répond "//​erreur :​ trop d'​arguments pour la commande//",​ faire <code bash>​snap connect mon_application:​removable-media</​code>​
  
 +Une nouvelle extraction de l'​état (cf. commande supra) rapportera une réponse sans équivoque :​
 +  removable-media ​          ​mon_application:​removable-media ​ :​removable-media ​                 manual
  
 +<​note>​Le connecteur [[https://​snapcraft.io/​docs/​cups-control-interface|cups-control]] permet de gérer l'​imprimante.</​note>​
  
 ===== Voir aussi ===== ===== Voir aussi =====
-  * [[https://​snapcraft.io/​ | site officiel]] 
-  * [[https://​open-store.io/​| logithèque officielle de snaps pour Ubuntu Touch ]] 
-  * [[https://​snapcraft.io/​ | logithèque officielle de snaps Canonical]] 
  
-  * [[https://forum.ubuntu-fr.org/viewtopic.php?​pid=22013312#​p22013312 ​Problème avec un proxy sans authentification]]+  * [[https://snapcraft.io/docs |Canonical Snapcraft]] :​ documentation officielle en anglais. 
 +  * [[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.
  • snap.1708947781.txt.gz
  • Dernière modification: Le 26/02/2024, 12:43
  • par lyondif02