snap : les commandes essentielles
Table des matières
Snap est un système de gestion de paquets et de déploiement d'applications développé par Canonical, la société derrière Ubuntu. snap est installé par défaut sur Ubuntu, mais c'est utilisable sur d'autres distributions Linux telles que Fedora ou Debian.
snap permet de créer, distribuer et gérer des applications conteneurisées et inclut toutes les dépendances nécessaires pour faire fonctionner les applications installées.
Le logiciel Kdenlive sera utilisé dans cet article car il est simple et est représentatif de la plupart des applications disponibles (Dépend de Qt et KDE, Possède des traductions)
Un Snap est un paquet applicatif autonome contenant l'application elle-même ainsi que toutes ses dépendances, rendant l'application portable et facile à installer sur n'importe quel système compatible Snap. Les snaps sont isolés des autres paquets du système, ce qui réduit les conflits de dépendances.
Snapd est le démon qui gère les snaps sur un système. Il est responsable de l'installation, de la mise à jour et de la suppression des snaps, ainsi que de la gestion des permissions et des connexions entre les snaps et le système hôte.
Le Snap Store est le dépôt centralisé où les snaps sont publiés et disponibles pour les utilisateurs. Il permet aux développeurs de distribuer facilement leurs applications et de gérer les versions et les mises à jour.
Par défaut, Snap utilise le Snap Store comme dépôt principal. Actuellement, Snap ne supporte pas directement l'ajout de dépôts tiers comme le font d'autres gestionnaires de paquets (APT, DNF, FLATPAK, etc.). Cependant, les développeurs peuvent créer leurs propres stores privés pour la distribution interne de snaps.
Pour les entreprises ou les organisations souhaitant utiliser des dépôts privés, Canonical offre des solutions professionnelles permettant de configurer et de gérer des Snap Stores privés. Cela nécessite une configuration avancée et des services supplémentaires fournis par Canonical. Ce n'est pas traité ici.
Il n'y a donc rien de particulier à faire contrairement aux flatpak.
Pour rechercher un snap, en fonction de son nom ou de son résumé :
Exemple avec Kdenlive :
Il est possible d'avoir des informations détaillées sur un paquet snap, qu'il soit installé ou non. Pour cela :
Exemple avec Kdenlive :
Pour installer un snap, on le fera avec son nom (droits root nécessaires) :
Exemple avec kdenlive :
Il est possible de lancer des snaps une fois installés depuis l'interface graphique. Les applications s'affichent dans les menus classiques.
Cependant, on pourra lancer des applications snap depuis le terminal moyennant la commande suivante :
Exemple avec kdenlive :
Pour mettre à jour l'ensemble des snap installés sur le système, on le fera simplement avec la commande (droits root nécessaires) :
Pour mettre un snap spécifique à jour, on indiquera le nom du paquet concerné (droits root nécessaires) :
Exemple avec kdenlive :
Pour lister les snap installés sur le système, on le fera simplement avec la commande :
On aura une liste comme dans cet exemple sur mon système :
Pour désinstaller un snap, on le fera avec la commande suivante (droit root nécessaires) :
Exemple avec kdenlive :
Snap utilise des channels pour gérer les versions des snaps.
Il n'y a pas de doc en français de snap, je ne me risque pas à traduire les termes.
C'est une fonction intéressante qui peut être globalement similaire aux modules dnf sur le concept.
Pour être très précis, un channel est subdivisé en 2 niveaux : tracks, risk-levels et facultativement un troisième nommé branches représentés ainsi :
Avec :
- Les tracks permettent aux développeurs de snap de publier plusieurs versions prises en charge de leur application sous le même nom de snap. (latest par défaut)
- Les risk-levels représentent un compromis potentiel progressif entre la stabilité et les nouvelles fonctionnalités. (stable par défaut)
- Les branches sont facultatives et contiennent des versions temporaires destinées à faciliter la correction des bogues. (facultatif)
Les risk-level disponibles sont :
- stable : La version stable recommandée pour la majorité des utilisateurs. (C'est le risk-level par défaut)
- candidate : Version prête pour la promotion vers stable, destinée aux tests finaux.
- beta : Version en développement avec des fonctionnalités en cours de test.
- edge : Version la plus récente, contenant les modifications les plus récentes et les moins testées.
Voici un exemple pour VLC :
Certains logiciels peuvent avoir plusieurs tracks. Par défaut, les snap ont la track latest.
Par exemple, Firefox possède la track par défaut "latest", mais aussi la track "esr".
Voici la représentation au moment de la rédaction de cet article :
Pour installer un snap sur un canal spécifique (stable par défaut), on utilisera la commande suivante (droit root nécessaires) :
Exemple avec VLC sur le canal edge :
Pour changer un snap existant vers un autre canal on utilisera la commande suivante (droit root nécessaires) :
Exemple avec VLC qu'on va migrer sur le canal beta :
Dans le cas de Firefox, si on souhaite passer de :
- latest à esr
- de stable à beta
On pourra le faire en 1 commande avec (droit root nécessaires) :
Cela fonctionne pour l'installation et la migration d'un snap déjà installé.
Si on installe un snap sur le canal beta et qu'on le désinstalle, le réinstaller "sans aucune option" réinstallera la version latest/stable.
Après la désinstallation, l'état des canaux n'est pas conservé dans le système.
Il existe également des raccourcis pour :
Introduction
Snap est un système de gestion de paquets et de déploiement d'applications développé par Canonical, la société derrière Ubuntu. snap est installé par défaut sur Ubuntu, mais c'est utilisable sur d'autres distributions Linux telles que Fedora ou Debian.
snap permet de créer, distribuer et gérer des applications conteneurisées et inclut toutes les dépendances nécessaires pour faire fonctionner les applications installées.
Le logiciel Kdenlive sera utilisé dans cet article car il est simple et est représentatif de la plupart des applications disponibles (Dépend de Qt et KDE, Possède des traductions)
Concepts de base
Un Snap est un paquet applicatif autonome contenant l'application elle-même ainsi que toutes ses dépendances, rendant l'application portable et facile à installer sur n'importe quel système compatible Snap. Les snaps sont isolés des autres paquets du système, ce qui réduit les conflits de dépendances.
Snapd est le démon qui gère les snaps sur un système. Il est responsable de l'installation, de la mise à jour et de la suppression des snaps, ainsi que de la gestion des permissions et des connexions entre les snaps et le système hôte.
Le Snap Store est le dépôt centralisé où les snaps sont publiés et disponibles pour les utilisateurs. Il permet aux développeurs de distribuer facilement leurs applications et de gérer les versions et les mises à jour.
Utiliser snap
Les dépôts
Par défaut, Snap utilise le Snap Store comme dépôt principal. Actuellement, Snap ne supporte pas directement l'ajout de dépôts tiers comme le font d'autres gestionnaires de paquets (APT, DNF, FLATPAK, etc.). Cependant, les développeurs peuvent créer leurs propres stores privés pour la distribution interne de snaps.
Pour les entreprises ou les organisations souhaitant utiliser des dépôts privés, Canonical offre des solutions professionnelles permettant de configurer et de gérer des Snap Stores privés. Cela nécessite une configuration avancée et des services supplémentaires fournis par Canonical. Ce n'est pas traité ici.
Il n'y a donc rien de particulier à faire contrairement aux flatpak.
Chercher en ligne des snap
Pour rechercher un snap, en fonction de son nom ou de son résumé :
Code BASH :
snap find mot_clé
Exemple avec Kdenlive :
Code BASH :
snap find kdenlive
Code TEXT :
Nom Version Auteur Notes Résumé kdenlive 23.08.4 kde✓ - Video Editor
Des infos sur les snap
Il est possible d'avoir des informations détaillées sur un paquet snap, qu'il soit installé ou non. Pour cela :
Code BASH :
snap info mot_clé
Exemple avec Kdenlive :
Code BASH :
snap info kdenlive
Code TEXT :
name: kdenlive summary: Video Editor publisher: KDE✓ store-url: https://snapcraft.io/kdenlive contact: https://bugs.kde.org/enter_bug.cgi?product=neon&component=Snaps license: unset description: | Kdenlive is a non linear video editor. It is based on the MLT framework and accepts many audio and video formats, allows you to add effects, transitions and render into the format of your choice. Features: - Intuitive multitrack interface. - Many effects and transitions. - Color scopes commands: - kdenlive - kdenlive.pip snap-id: VJV60ZSgXvOHQRwhT4RLdnKgp1C0qg6f tracking: latest/stable refresh-date: aujourd'hui à 16h31, heure des Rocheuses channels: latest/stable: 23.08.4 2023-12-10 (105) 459MB - latest/candidate: 23.08.5 2024-02-17 (107) 474MB - latest/beta: ↑ latest/edge: ↑ installed: 23.08.4 (105) 459MB -
Installer des snap
Pour installer un snap, on le fera avec son nom (droits root nécessaires) :
Code BASH :
snap install le_paquet
Exemple avec kdenlive :
Code BASH :
snap install kdenlive
Lancer des snap
Il est possible de lancer des snaps une fois installés depuis l'interface graphique. Les applications s'affichent dans les menus classiques.
Cependant, on pourra lancer des applications snap depuis le terminal moyennant la commande suivante :
Code BASH :
snap run le_paquet
Exemple avec kdenlive :
Code BASH :
snap run kdenlive
Mettre à jour les snap
Pour mettre à jour l'ensemble des snap installés sur le système, on le fera simplement avec la commande (droits root nécessaires) :
Code BASH :
snap refresh
Pour mettre un snap spécifique à jour, on indiquera le nom du paquet concerné (droits root nécessaires) :
Code BASH :
snap refresh le_paquet
Exemple avec kdenlive :
Code BASH :
snap refresh kdenlive
Lister les snap installés
Pour lister les snap installés sur le système, on le fera simplement avec la commande :
Code BASH :
snap list
On aura une liste comme dans cet exemple sur mon système :
Code :
Nom Version Révision Suivi Éditeur Notes
bare 1.0 5 latest/stable canonical✓ base
core20 20240416 2318 latest/stable canonical✓ base
core22 20240408 1380 latest/stable canonical✓ base
firefox 127.0.2-1 4483 latest/stable/… mozilla✓ -
gnome-3-38-2004 0+git.efb213a 143 latest/stable/… canonical✓ -
gnome-42-2204 0+git.510a601 176 latest/stable canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
kdenlive 23.08.4 105 latest/stable kde✓ -
kf5-5-111-qt-5-15-11-core22 5.111 7 latest/stable kde✓ -
snap-store 41.3-77-g7dc86c8 1113 latest/stable/… canonical✓ -
snapd 2.63 21759 latest/stable canonical✓ snapd
snapd-desktop-integration 0.9 157 latest/stable/… canonical✓ -
Désinstaller des snap
Pour désinstaller un snap, on le fera avec la commande suivante (droit root nécessaires) :
Code BASH :
snap remove le_paquet
Exemple avec kdenlive :
Code BASH :
snap remove kdenlive
Gestion des channels ("branches")
A propos des channels
Snap utilise des channels pour gérer les versions des snaps.
Il n'y a pas de doc en français de snap, je ne me risque pas à traduire les termes.
C'est une fonction intéressante qui peut être globalement similaire aux modules dnf sur le concept.
Pour être très précis, un channel est subdivisé en 2 niveaux : tracks, risk-levels et facultativement un troisième nommé branches représentés ainsi :
Code TEXT :
tracks/risk-levels/branches
Avec :
- Les tracks permettent aux développeurs de snap de publier plusieurs versions prises en charge de leur application sous le même nom de snap. (latest par défaut)
- Les risk-levels représentent un compromis potentiel progressif entre la stabilité et les nouvelles fonctionnalités. (stable par défaut)
- Les branches sont facultatives et contiennent des versions temporaires destinées à faciliter la correction des bogues. (facultatif)
Les risk-level disponibles sont :
- stable : La version stable recommandée pour la majorité des utilisateurs. (C'est le risk-level par défaut)
- candidate : Version prête pour la promotion vers stable, destinée aux tests finaux.
- beta : Version en développement avec des fonctionnalités en cours de test.
- edge : Version la plus récente, contenant les modifications les plus récentes et les moins testées.
Voici un exemple pour VLC :
Code :
channels:
latest/stable: 3.0.20-1-g2617de71b6 2024-03-26 (3777) 336MB -
latest/candidate: 3.0.20-1-g2617de71b6 2024-03-26 (3777) 336MB -
latest/beta: 3.0.20-138-g6ceb56b830 2024-05-29 (4130) 336MB -
latest/edge: 4.0.0-dev-28288-g586bf64e5f 2024-03-28 (4070) 703MB -
Certains logiciels peuvent avoir plusieurs tracks. Par défaut, les snap ont la track latest.
Par exemple, Firefox possède la track par défaut "latest", mais aussi la track "esr".
Voici la représentation au moment de la rédaction de cet article :
Code :
channels:
latest/stable: 127.0.2-1 2024-06-26 (4483) 281MB -
latest/candidate: 128.0-2 2024-07-04 (4539) 280MB -
latest/beta: 128.0b9-1 2024-06-28 (4502) 280MB -
latest/edge: 129.0a1 2024-07-05 (4542) 300MB -
esr/stable: 115.12.0esr-1 2024-06-11 (4373) 256MB -
esr/candidate: 115.13.0esr-3 2024-07-04 (4532) 256MB -
esr/beta: ↑
esr/edge: ↑
installed: 127.0.2-1 (4483) 281MB -
Installation sur un canal spécifique
Pour installer un snap sur un canal spécifique (stable par défaut), on utilisera la commande suivante (droit root nécessaires) :
Code BASH :
snap install le_paquet --channel=le_canal
Exemple avec VLC sur le canal edge :
Code BASH :
snap install vlc --channel=edge
Migrer un snap installé sur un autre canal
Pour changer un snap existant vers un autre canal on utilisera la commande suivante (droit root nécessaires) :
Code BASH :
snap refresh le_paquet --channel=le_canal
Exemple avec VLC qu'on va migrer sur le canal beta :
Code BASH :
snap refresh vlc --channel=beta
Cas de migration de track et risk-level
Dans le cas de Firefox, si on souhaite passer de :
- latest à esr
- de stable à beta
On pourra le faire en 1 commande avec (droit root nécessaires) :
Code BASH :
snap refresh firefox --channel=esr/stable
Cela fonctionne pour l'installation et la migration d'un snap déjà installé.
Informations complémentaires
Si on installe un snap sur le canal beta et qu'on le désinstalle, le réinstaller "sans aucune option" réinstallera la version latest/stable.
Après la désinstallation, l'état des canaux n'est pas conservé dans le système.
Il existe également des raccourcis pour :
Code :
--stable pour --channel=stable
--candidate pour --channel=candidate
--beta pour --channel=beta
--edge pour --channel=edge