Snapcraft è un insieme di strumenti raggruppati sotto il snapcraft
comando 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>.snap
comando.
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.yaml
file 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.yaml
file 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 snapcraft
comando 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:
- Pull : estrae il codice dalla parte gopaste richiesta da un repository Github remoto
- Build : costruisce gopaste localmente
- Fase : dopo la compilazione, le parti vengono inserite in un singolo albero di directory, la "area di gestione temporanea"
- 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 _armhf
suffisso di architettura).
- È anche possibile eseguire ogni comando singolarmente:
snapcraft pull
, snapcraft build
, snapcraft stage
osnapcraft snap
- Utilizzare
snapcraft -h
per 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>