Qu'est-ce que Snapcraft?

16

J'ai essayé le noyau Ubuntu accrocheur sur un appareil Raspberry Pi 2, et j'ai entendu que je peux utiliser Snapcraft pour faire du développement dessus. Maintenant, j'entends que des snaps 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?

David Planella
la source

Réponses:

27

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

En un mot, en tant que développeur, vous écririez du code à l'aide de vos outils habituels et vous laisseriez Snapcraft se charger de l'assembler pour la distribution. Snapcraft excelle également en permettant aux développeurs de porter leurs applications existantes sur n'importe quelle plate-forme Linux activée par snap.

Snapcraft:

  • Est intelligent : il récupère, construit et assemble divers logiciels ( pièces ) à partir de sources distantes dans un package final .snap, qui contient toutes les dépendances dont il a besoin pour fonctionner
  • Besoin d'une recette : il s'appuie sur un snapcraft.yamlfichier qui spécifie les pièces et plugins nécessaires pour créer le package
  • Est extensible avec des plugins. Bien qu'il soit livré avec un ensemble des plug-ins de système de build les plus courants pour répondre à un large éventail de builds d'applications, il peut être facilement étendu avec de nouveaux .

La visite Snapcraft de 3 minutes

Installez Snapcraft sur Ubuntu

Vous aurez besoin d'Ubuntu 16.04 LTS pour utiliser Snapcraft. Ouvrez un terminal avec Ctrl+ Alt+ tet 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 qui contient un service qui vous permet de coller et de partager. Une fois terminé, vous pouvez l'installer manuellement sur votre appareil accrocheur à des fins de test ou le télécharger sur le Store pour d'autres utilisateurs.

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

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

Notez le snapcraft.yamlfichier dans ce répertoire, qui spécifie un service et les pièces nécessaires pour assembler le .snap final. Vous pouvez éventuellement l'examiner avec un éditeur de texte.

Exécutez maintenant la snapcraftcommande sur le terminal. Cela entraînera l'exécution de toutes les sous-commandes snapcraft en séquence pour générer les pièces et placer les résultats dans le package .snap final. Pendant le développement, vous devez normalement exécuter les étapes séparément jusqu'à ce que vous soyez sûr que la construction et l'assemblage entiers 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 la sortie 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 d'un dépôt Github distant
  2. Build : il construit gopaste localement
  3. Étape : après la construction, les pièces sont placées dans une arborescence de répertoires unique, la "zone de transit"
  4. Snap : le package .snap final est créé à partir des pièces assemblées dans la zone de transfert

Remarques:

  • Vous trouverez le fichier snap final en tant que gopaste_1.0_amd64.snap(remarquez dans mon cas que je l'ai construit sur mon bureau amd64, par exemple, les packages Raspberry Pi 2 auraient le _armhfsuffixe d'architecture).
  • Vous pouvez également exécuter chaque commande individuellement: snapcraft pull, snapcraft build, snapcraft stageousnapcraft snap
  • Utilisez snapcraft -hpour un aperçu rapide de toutes les commandes disponibles.

Et c'est tout pour un aperçu rapide de ce que Snapcraft peut faire! En savoir plus sur Snapcraft>

David Planella
la source
9
J'apprécie le commentaire, mais bien que je ne sois pas l'un des développeurs de snapcraft, je ne sais pas non plus comment expliquer ce qu'est un outil pour créer des snaps Ubuntu et comment l'utiliser, sur un site Ubuntu, pourrait jamais constituer du spam.
David Planella
Le libellé de la liste des fonctionnalités m'a déclenché. Et aussi"And that's it for a quick glimpse of what Snapcraft can do!"
Ismael Miguel
1
Je suis d'accord avec David ici.
dholbach
1
La partie bzr devrait être remplacée par des commandes git équivalentes, puisque le code est maintenant sur Github.
lapisdecor
1
De plus, pour ce faire, vous devez installer git et gcc si vous utilisez git et non bzr.
lapisdecor