web-dev-qa-db-fra.com

Qu'est-ce que Snapcraft?

J'ai essayé le noyau Ubuntu accrocheur sur un appareil Raspberry Pi 2 et j'ai entendu dire que je pouvais utiliser Snapcraft pour faire du développement dessus. Maintenant, j'entends dire que des instantanés sont disponibles sur le bureau et le serveur pour Ubuntu 16.04 et autres distributions.

Qu'est-ce que Snapcraft et comment puis-je l'utiliser?

16
David Planella

Snapcraft est un ensemble d'outils regroupés sous la commande snapcraft pour créer facilement des packages (techniques) pour plusieurs distributions Linux . Ces packages .snap contiennent généralement des applications autonomes, fournissent une isolation sécurisée et peuvent être installés à partir du magasin de logiciels Ubuntu ou manuellement via la commande snap install <snap-name>.snap.

En un mot, en tant que développeur, vous écrivez du code avec vos outils habituels et laissez Snapcraft se charger de l'assemblage pour la distribution. Snapcraft excelle également en permettant aux développeurs de transférer leurs applications existantes sur toute plate-forme Linux compatible avec la capture instantanée.

Snapcraft:

  • Est intelligent : il récupère, construit et assemble divers éléments de logiciels ( parties ) depuis des sources distantes dans un paquet final .snap, qui contient toutes les dépendances nécessaires à son fonctionnement
  • Nécessite une recette : il s’appuie sur un fichier snapcraft.yaml qui spécifie les parties et plugins requis pour créer le paquet
  • Est extensible avec des plugins. Bien qu’il soit livré avec un ensemble de plugins de système de construction les plus courants pour prendre en charge un large éventail de versions d’applications, il peut être facilement extensible avec de nouvelles .

Le tour Snapcraft de 3 minutes

Installer Snapcraft sur Ubuntu

Vous aurez besoin d’Ubuntu 16.04 LTS pour utiliser Snapcraft. Ouvrir un terminal avec Ctrl+Alt+t et installez simplement Snapcraft avec cette commande:

Sudo apt install snapcraft
Sudo apt install build-essential  # Optional, but useful for different builds

Si vous utilisez une autre distribution, consultez les instructions d'installation alternatives>

Testez Snapcraft

L'exemple suivant crée un package contenant un service qui vous permet de coller et de partager. Une fois terminé, vous pouvez l'installer manuellement sur votre appareil Snappy à des fins de test ou le télécharger sur la boutique pour d'autres utilisateurs.

Tout d'abord, nous ouvrons un terminal et téléchargeons l'exemple depuis le référentiel d'exemples:

Sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste

Notez le fichier snapcraft.yaml dans ce répertoire, qui spécifie un service et les composants requis pour assembler le fichier .snap final. Vous pouvez éventuellement l'examiner avec un éditeur de texte.

Exécutez maintenant la commande snapcraft sur le terminal. Cela entraînera l'exécution séquentielle de toutes les sous-commandes snapcraft afin de créer les pièces et de placer les résultats dans le package final .snap. Pendant le développement, vous exécuterez normalement les étapes séparément jusqu'à ce que vous soyez certain que toute la construction et l'ensemble fonctionnent.

$ snapcraft 
Pulling gopaste 
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go get -t -d github.com/wisnij/gopaste/gopasted
Building gopaste 
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go build github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go install github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build cp -a /tmp/snapcraft/examples/gopaste/parts/gopaste/build/bin /tmp/snapcraft/examples/gopaste/parts/gopaste/install
Staging gopaste 
Snapping gopaste 
Generated 'gopaste_1.0_AMD64.snap' snap

Sur le résultat de la commande, vous pouvez voir les étapes que snapcraft exécute pour vous:

  1. Pull : il extrait le code de la partie gopaste requise à partir d'un dépôt Github distant.
  2. Build : il construit le gopaste localement
  3. Stage : après la construction, les pièces sont placées dans une seule arborescence, la "zone de transfert".
  4. Snap : le package final .snap est créé à partir des pièces assemblées dans la zone de transfert.

Remarques:

  • Vous trouverez le fichier instantané final sous le nom gopaste_1.0_AMD64.snap (dans mon cas, je l’ai construit sur mon ordinateur de bureau AMD64, par exemple, les paquets Raspberry Pi 2 auraient le suffixe _armhf pour l’architecture).
  • Vous pouvez également exécuter chaque commande individuellement: snapcraft pull, snapcraft build, snapcraft stage ou snapcraft snap
  • Utilisez snapcraft -h pour un aperçu rapide de toutes les commandes disponibles.

Et voilà pour un aperçu de ce que Snapcraft peut faire! En savoir plus sur Snapcraft>

27
David Planella