Snapcraft è un set di strumenti in bundle con il comando snapcraft
per creare facilmente pacchetti (artigianali) per più distribuzioni Linux . Questi pacchetti .snap contengono generalmente app autonome, forniscono isolamento sicuro e sono installabili da Ubuntu Software Store o manualmente tramite il comando snap install <snap-name>.snap
.
In poche parole, come sviluppatore si scriverebbe codice usando i propri strumenti regolari e lasciare che Snapcraft si occupasse di assemblarlo per la distribuzione. Snapcraft eccelle anche nel consentire agli sviluppatori port le loro app esistenti su qualsiasi piattaforma Linux abilitata per gli snapshot.
Snapcraft:
- È intelligente : recupera, costruisce e assembla diversi software ( parti ) da sorgenti remote in un pacchetto .snap finale, che contiene tutte le dipendenze di cui ha bisogno per funzionare
- Richiede una ricetta : si basa su un file
snapcraft.yaml
che specifica le parti e plugins necessari per creare il pacchetto
- È estensibile con plug-in. Mentre viene fornito con un set dei più comuni plugin del sistema di compilazione per soddisfare una vasta gamma di build di app, può essere facilmente estendibile con nuovi .
Contenuto del post:
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 + t e installa semplicemente Snapcraft con questo comando:
sudo apt install snapcraft
sudo apt install build-essential # Optional, but useful for different builds
Se stai utilizzando un’altra distribuzione, consulta le istruzioni di installazione alternative & gt;
Test-Drive Snapcraft
L’esempio seguente mostra un pacchetto che contiene un servizio che consente di incollare e condividere. Una volta terminato, puoi installarlo manualmente sul tuo dispositivo snappy 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
Nota il file snapcraft.yaml
in quella directory, che specifica un servizio e le parti necessarie per assemblare lo .snap finale. Puoi opzionalmente esaminarlo con un editor di testo.
Ora esegui il comando snapcraft
sul terminale. Ciò causerà l’esecuzione in sequenza di tutti i sottocomandi di snapcraft per creare le parti e inserire i risultati nel pacchetto .snap finale. Durante lo sviluppo, normalmente eseguirai i passaggi separatamente fino a quando sarai sicuro che l’intera build e l’assembly funzioneranno.
$ 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
Sull’output del comando puoi vedere i passaggi che snapcraft esegue per te:
- Pull : estrae il codice dalla parte gopaste richiesta da un repository Github remoto
- Build : crea gopaste localmente
- Stage : dopo la compilazione, le parti vengono inserite in un singolo albero di directory, la “area di staging”
- Snap : il pacchetto .snap finale viene creato dalle parti assemblate nell’area di staging
Note:
- Troverai il file finale finale come
gopaste_1.0_amd64.snap
(avviso nel mio caso l’ho creato sul mio desktop amd64, ad esempio i pacchetti Raspberry Pi 2 avrebbero il suffisso di architettura_armhf
). - Puoi anche eseguire singolarmente ogni comando:
snapcraft pull
,snapcraft build
,snapcraft stage
osnapcraft snap
- Utilizza
snapcraft -h
per una rapida panoramica di tutti i comandi disponibili.
E questo è tutto ciò che puoi fare con Snapcraft! Ulteriori informazioni su Snapcraft & gt;