Che cos'è Snapcraft?


16

Ho provato il vivace core di Ubuntu su un dispositivo Raspberry Pi 2 e ho sentito che posso usare Snapcraft per fare lo sviluppo su di esso. Ora sento che gli snap sono disponibili sul desktop e sul server per Ubuntu 16.04 e altre distribuzioni.

Cos'è Snapcraft e come posso usarlo?

Risposte:


27

Snapcraft è un insieme di strumenti raggruppati sotto il snapcraftcomando per creare facilmente pacchetti (artigianali) per più distribuzioni Linux . Questi pacchetti .snap generalmente contengono app autonome, forniscono un isolamento sicuro e sono installabili dal Ubuntu Software Store o manualmente tramite il snap install <snap-name>.snapcomando.

In poche parole, come sviluppatore scrivevi il codice usando i tuoi strumenti normali e lascia che Snapcraft si occupasse del suo assemblaggio per la distribuzione. Snapcraft eccelle anche nel consentire agli sviluppatori porto le loro applicazioni esistenti ad ogni snap-enabled piattaforma Linux.

Snapcraft:

  • È intelligente : recupera, costruisce e assembla diversi software ( parti ) da fonti remote in un pacchetto .snap finale, che contiene tutte le dipendenze necessarie per funzionare
  • Ha bisogno di una ricetta : si basa su un snapcraft.yamlfile che specifica le parti e i plugin necessari per creare il pacchetto
  • È estensibile con plugin. Mentre viene fornito con un set di plugin del sistema di build più comuni per soddisfare una vasta gamma di build di app, può essere facilmente esteso con quelli nuovi .

Il tour di 3 minuti di Snapcraft

Installa Snapcraft su Ubuntu

Avrai bisogno di Ubuntu 16.04 LTS per usare Snapcraft. Apri un terminale con Ctrl+ Alt+ te installa semplicemente Snapcraft con questo comando:

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

Se si utilizza un'altra distribuzione, consultare le istruzioni di installazione alternative>

Test-drive Snapcraft

L'esempio seguente crea un pacchetto che contiene un servizio che consente di incollare e condividere. Al termine, è possibile installarlo manualmente sul dispositivo scattante a scopo di test o caricarlo nello Store per altri utenti.

Prima di tutto apriamo un terminale e scarichiamo l'esempio dal repository degli esempi:

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

Notare il snapcraft.yamlfile in quella directory, che specifica un servizio e le parti necessarie per assemblare il file .snap finale. Puoi facoltativamente esaminarlo con un editor di testo.

Ora esegui il snapcraftcomando sul terminale. In questo modo tutti i sottocomandi di Snapcraft verranno eseguiti in sequenza per creare le parti e inserire i risultati nel pacchetto .snap finale. Durante lo sviluppo, normalmente si eseguono i passaggi separatamente fino a quando non si è certi che l'intera build e l'assemblaggio funzionino.

$ 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

Nell'output del comando è possibile visualizzare i passaggi eseguiti da Snapcraft:

  1. Pull : estrae il codice dalla parte gopaste richiesta da un repository Github remoto
  2. Build : costruisce gopaste localmente
  3. Fase : dopo la compilazione, le parti vengono inserite in un singolo albero di directory, la "area di gestione temporanea"
  4. Snap : il pacchetto .snap finale viene creato dalle parti assemblate nell'area di gestione temporanea

Appunti:

  • Troverai il file di snap finale come gopaste_1.0_amd64.snap(nota nel mio caso l'ho creato sul mio desktop amd64, ad esempio i pacchetti di Raspberry Pi 2 avrebbero il _armhfsuffisso di architettura).
  • È anche possibile eseguire ogni comando singolarmente: snapcraft pull, snapcraft build, snapcraft stageosnapcraft snap
  • Utilizzare snapcraft -hper una rapida panoramica di tutti i comandi disponibili.

E questo è tutto per una rapida occhiata a ciò che Snapcraft può fare! Ulteriori informazioni su Snapcraft>


9
Apprezzo il commento, ma anche se non sono uno degli sviluppatori di snapcraft, non sono anche sicuro di come sia uno strumento per creare snap Ubuntu e come utilizzarlo, su un sito Ubuntu, possa mai costituire spam.
David Planella,

La formulazione nell'elenco delle funzionalità ha innescato questo su di me. E anche"And that's it for a quick glimpse of what Snapcraft can do!"
Ismael Miguel,

1
Sono d'accordo con David qui.
Dholbach,

1
La parte bzr dovrebbe essere sostituita da comandi git equivalenti, poiché il codice è ora su Github.
lapisdecor,

1
Inoltre, per fare ciò devi installare git e gcc se stai usando git e non bzr.
lapisdecor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.