Comment installer et utiliser Snapcraft sous Linux

Vous êtes-vous déjà demandé comment certaines distributions Linux facilitent l’installation de logiciels alors que d’autres peuvent être assez difficiles ? La différence réside dans le format de package qu’ils utilisent. Certaines distributions utilisent des fichiers .deb tandis que d’autres utilisent des fichiers .rpm.

Mais que se passerait-il s’il existait un format de package pouvant être utilisé sur n’importe quelle distribution ? C’est là qu’intervient Snapcraft. Dans ce didacticiel, vous apprendrez à installer et à utiliser Snapcraft pour créer et installer des packages snap sous Linux.

Qu’est-ce qu’un forfait Snap ?

Un package snap est un package d’application autonome qui inclut toutes les dépendances et bibliothèques nécessaires, ce qui facilite l’installation et la mise à jour des applications sans avoir à se soucier des problèmes de dépendance.

Pourquoi utiliser les forfaits Snap ?

L’utilisation de packages snap présente plusieurs avantages :

  • Les Snaps sont faciles à installer et à mettre à jour. Vous pouvez installer un package snap avec une seule commande, et les snaps sont automatiquement mis à jour en arrière-plan.
  • Les snaps sont sûrs et sécurisés. Étant donné que toutes les dépendances sont incluses dans le package snap, il n’y a aucun risque de conflit de dépendance. De plus, les snaps sont isolés du reste du système, ils ne peuvent donc pas accéder à vos données ou à d’autres applications sur votre système.
  • Vous pouvez installer votre application préférée sur n’importe quelle distribution Linux prenant en charge les snaps.

Installer Snapd sous Linux

Snapd est un démon qui permet l’installation et l’utilisation de snaps et doit être installé avant de pouvoir utiliser Snapcraft. Lorsque vous installez Snapd, il installe également un outil d’interface de ligne de commande (CLI) appelé snap. Vous pouvez utiliser cet outil pour gérer vos snaps.

Pour installer Snapd sur Ubuntu, ouvrez un terminal et entrez la commande suivante, en saisissant votre mot de passe utilisateur lorsque vous y êtes invité.

sudo apt update -y  && sudo apt install snapd -y
Snapcraft Installer Snapd Ubuntu

Sur CentOS, vous devrez activer le référentiel EPEL avant de pouvoir installer Snapd. Pour cela, saisissez d’abord la commande suivante dans votre terminal :

sudo dnf install epel-release -y && sudo dnf update -y
Snapcraft Activer le référentiel Epel

Ensuite, installez Snapd avec la commande ci-dessous. Entrez le mot de passe de l’utilisateur sudo lorsque vous y êtes invité.

sudo dnf install snapd -y
Snapscrat Installer Snapd Centos

Dans Fedora, installez avec la commande :

Dans Arch Linux, installez snapd depuis AUR. Consultez ces assistants AUR pour vous aider à installer facilement des packages tiers.

Une fois l’installation terminée, exécutez la commande ci-dessous pour activer le snapd.socket unité systemd. Cela garantit que le démon Snapd démarre automatiquement au démarrage de votre système.

sudo systemctl enable --now snapd.socket

Créez un lien symbolique entre « /var/lib/snapd/snap » et « /snap » pour activer la prise en charge classique de l’accrochage.

sudo ln -s /var/lib/snapd/snap /snap

Maintenant que vous avez installé le Snapd sur votre système Linux, vérifiez la version du Snapd avec la commande ci-dessous. Vous verrez une sortie similaire à la suivante.

Snapcraft Snapd Version

Vous pouvez également vérifier l’état du service Snapd avec la commande suivante.

sudo systemctl status snapd
Statut de Snapcraft Snapd Ubuntu 1

Installer Snapcraft

Avant de pouvoir créer des packages snap, vous devez installer Snapcraft, l’outil utilisé pour créer des packages snap.

Pour installer Snapcraft sur Linux, exécutez la commande suivante. La classic le drapeau raconte snap utiliser le classic mode confinement. Cet indicateur est requis car Snapcraft ne prend pas encore en charge le mode de confinement plus récent et plus restrictif.

sudo snap install snapcraft --classic
Snapcraft Installer Snapcraft

Vérifiez que Snapcraft est installé en vérifiant le numéro de version.

Numéro de version Snapscraft.

Utiliser Snapcraft pour créer un package Snap

Passons maintenant à la partie intéressante : utiliser Snapcraft pour créer un package instantané pour une application. Dans ce didacticiel, nous créons un snap de base hello-world, un snap simple qui imprime « Hello, world! » quand vous l’exécutez. Après avoir terminé ce didacticiel, appliquez le même processus pour créer des snaps pour vos propres applications.

Par souci de simplicité, les étapes ci-dessous vous guideront tout au long du processus de création d’un composant logiciel enfichable dans Ubuntu. Les mêmes étapes peuvent également être appliquées sur d’autres distributions Linux.

Commencer un projet pour votre Snap

Créez d’abord un répertoire de projet pour votre composant logiciel enfichable. Ce sera le répertoire de travail de votre projet et vous aidera à organiser vos fichiers de projet.

  1. Créez un répertoire de projet nommé « hello » avec la commande suivante :

La -p le drapeau indique au mkdir commande pour créer des répertoires parents qui n’existent pas déjà. Dans ce cas, le mysnaps répertoire sera créé s’il n’existe pas. Vous pouvez mettre tous les futurs snaps dans ce répertoire.

  1. Déplacez-vous dans le répertoire du projet nouvellement créé et initialisez le projet avec le init commande pour créer un fichier nommé « snapcraft.yaml » dans votre répertoire de projet. Vous pouvez utiliser le fichier « snapcraft.yaml » pour configurer votre snap plus tard.
cd ~/mysnaps/hello
snapcraft init
Snapcraft Initialiser le projet 1
  1. Vérifiez la structure de votre projet avec le tree commande, qui imprime une représentation graphique de votre répertoire de projet.

Vous verrez une sortie similaire à la suivante.

Vérifiez la structure de votre projet

Ajout de métadonnées de niveau supérieur

Snapcraft fournit de nombreuses métadonnées que vous pouvez utiliser pour décrire votre package snap. Dans ce didacticiel, nous ajoutons quelques informations de base requises pour chaque composant logiciel enfichable.

  1. Ouvrez le fichier « snapcraft.yaml » dans votre éditeur de texte préféré. Nous avons utilisé nano dans ce tutoriel.
  1. Supprimez les lignes d’espace réservé et remplacez-les par le contenu suivant.
name: hello
base: core18
version: '2.10'
summary: GNU Hello, the "hello world" snap
description: |
  GNU hello prints a friendly greeting.
grade: devel
confinement: devmode

Ici, nous avons changé les informations de notre snap. La core18 base indique à Snapcraft que vous souhaitez créer un composant logiciel enfichable basé sur Ubuntu Core 18. confinement: devmode les métadonnées indiquent à Snapcraft que vous souhaitez créer un composant logiciel enfichable non confiné, ce qui est utile à des fins de développement et de test.

Exposer votre application

  1. Ajoutez les lignes suivantes après le champ confinement dans votre fichier « snapcraft.yaml ». Ici, nous spécifions l’application que nous voulons empaqueter.
apps:
 hello:
  command: bin/hello

Dans ce cas, nous n’avons qu’une seule application, hello. La command La ligne indique à Snapcraft quel binaire exécuter lorsque le composant logiciel enfichable est installé.

Ajout d’une pièce

  1. Dans une nouvelle ligne, ajoutez ce qui suit parts commande:
parts:
  gnu-hello:
    source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
    plugin: autotools

Cela indique à Snapcraft quel logiciel vous souhaitez inclure dans votre package snap.

Pour construire ce composant logiciel enfichable hello-world, vous devez télécharger le code source de GNU Hello, puis utiliser le autotool plugin pour construire l’application à partir de la source.

  1. À ce stade, votre fichier snapcraft.yaml ressemblera à celui ci-dessous. Enregistrez et fermez le fichier snapcraft.yaml avant de passer à l’étape suivante.
Fichier Snapcraft.yaml

Construire le package Snap

Maintenant que vous avez défini votre composant logiciel enfichable, il est temps de le construire. Pour créer un package snap, exécutez la commande suivante.

Il vous sera demandé d’installer « multipass » si vous ne l’avez pas sur votre système. Snapcraft utilise le multipasse pour créer un environnement isolé pour créer des snaps au sein d’une machine virtuelle. Taper y et appuyez sur Entrer continuer.

Multipass Snapcraft

Le processus de construction peut prendre un certain temps, selon votre connexion Internet et les spécifications de votre ordinateur. Une fois le processus de construction terminé, vous verrez quelque chose de similaire à la sortie suivante.

Construction Snapcraft

Au final, vous trouverez un « hello_2.10_amd64.snap » dans le répertoire du projet.

Tester le package Snap

Pour tester si votre package snap fonctionne, exécutez la commande suivante :

sudo snap install --devmode hello_2.10_amd64.snap

La --devmode le drapeau raconte snap dans lequel vous souhaitez installer le composant logiciel enfichable devmodece qui est utile à des fins de test.

Snapcraft Installer Snap

Ensuite, exécutez la commande suivante pour exécuter votre application hello-world.

Vous verrez la sortie suivante, qui indique que votre composant logiciel enfichable hello-world fonctionne comme prévu.

Snapcraft Exécutez votre application Hello World

Pour voir la version de votre application hello-world, exécutez la commande suivante.

Version de l'application Snapcraft Hello World

Si vous rencontrez un problème lors du test du composant logiciel enfichable, obtenez plus d’informations en utilisant le --debug flag et en exécutant la commande suivante.

Débogage Snapcraft

Questions fréquemment posées

Snapcraft est-il sûr ?

Absolument! Snapcraft est l’outil officiel pour créer des snaps. Il est développé et maintenu par Canonical, la société derrière Ubuntu. Soyez assuré que Snapcraft est sûr et fiable.

Est-ce que Snap ressemble à Docker ?

Oui et non. Snap et Docker sont deux technologies de conteneurs mais ont des objectifs différents. Considérez Snap comme un format de packaging pour votre application et Docker comme un environnement d’exécution pour votre application. Vous pouvez configurer WordPress avec Nginx et PHP dans un conteneur Docker en utilisant les images officielles WordPress et Nginx, mais vous ne pouvez pas créer de package Snap pour votre site WordPress.

Snap est-il meilleur qu’apt ou apt-get ?

Ça dépend. Les deux systèmes ont leurs propres avantages et inconvénients. Apt et apt-get est le gestionnaire de paquets traditionnel pour les distributions Linux basées sur Debian. Il existe depuis longtemps et est très stable, mais il présente quelques inconvénients. Par exemple, apt ne prend pas en charge la gestion des versions et la restauration. Snap, d’autre part, prend en charge à la fois la gestion des versions et la restauration. Donc, si vous souhaitez expérimenter de nouvelles versions de votre application, Snap est la solution. Mais si vous voulez un système stable, apt et apt-get sont le meilleur choix.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici