Snapcraft ist eine Reihe von Tools, die unter dem snapcraft
Befehl gebündelt sind, um auf einfache Weise (Craft-) Pakete für mehrere Linux-Distributionen zu erstellen . Diese .snap-Pakete enthalten im Allgemeinen in sich geschlossene Apps, bieten eine sichere Isolierung und können entweder vom Ubuntu Software Store aus oder manuell über den snap install <snap-name>.snap
Befehl installiert werden .
Kurz gesagt, als Entwickler würden Sie Code mit Ihren regulären Tools schreiben und Snapcraft sich darum kümmern, ihn für die Verteilung zusammenzustellen. Snapcraft zeichnet sich auch Entwickler in ermöglicht Port ihre bestehenden Anwendungen zu jedem Snap-fähigen Linux - Plattform.
Snapcraft:
- Ist intelligent : Es ruft verschiedene Teile der Software ( Teile ) von Remote-Quellen ab, erstellt sie und setzt sie zu einem endgültigen .snap-Paket zusammen, das alle Abhängigkeiten enthält, die es zum Funktionieren benötigt
- Benötigt ein Rezept : Es basiert auf einer
snapcraft.yaml
Datei, die die Teile und Plugins angibt, die zum Erstellen des Pakets erforderlich sind
- Ist mit Plugins erweiterbar. Es wird mit einer Reihe der gebräuchlichsten Build-System-Plugins ausgeliefert, um eine Vielzahl von App-Builds zu unterstützen. Es kann jedoch problemlos mit neuen Plugins erweitert werden .
Die 3-minütige Snapcraft-Tour
Installieren Sie Snapcraft auf Ubuntu
Sie benötigen Ubuntu 16.04 LTS, um Snapcraft verwenden zu können. Öffnen Sie ein Terminal mit Ctrl+ Alt+ tund einfach installieren Snapcraft mit diesem Befehl:
sudo apt install snapcraft
sudo apt install build-essential # Optional, but useful for different builds
Wenn Sie eine andere Distribution verwenden, lesen Sie die alternativen Installationsanweisungen>
Testen Sie Snapcraft
Im folgenden Beispiel wird ein Paket erstellt, das einen Dienst enthält, mit dem Sie Inhalte einfügen und freigeben können. Wenn Sie fertig sind, können Sie es zu Testzwecken manuell auf Ihrem Snappy-Gerät installieren oder es für andere Benutzer in den Store hochladen.
Zunächst öffnen wir ein Terminal und laden das Beispiel aus dem Beispiel-Repository herunter:
sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste
Beachten Sie die snapcraft.yaml
Datei in diesem Verzeichnis, die einen Dienst und die Teile angibt, die zum Zusammenstellen der endgültigen .snap-Datei erforderlich sind. Sie können es optional mit einem Texteditor untersuchen.
Führen Sie nun den snapcraft
Befehl auf dem Terminal aus. Dadurch werden alle snapcraft-Unterbefehle nacheinander ausgeführt, um die Teile zu erstellen und die Ergebnisse in das endgültige .snap-Paket zu übernehmen. Während der Entwicklung führen Sie die Schritte normalerweise separat aus, bis Sie sicher sind, dass die gesamte Erstellung und Montage funktioniert.
$ 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
In der Ausgabe des Befehls sehen Sie die Schritte, die snapcraft für Sie ausführt:
- Pull : Es zieht den Code aus dem gewünschten Gopaste-Teil aus einem entfernten Github-Repo
- Bauen : Es baut Gopaste lokal auf
- Phase : Nach dem Build werden die Teile in einem einzigen Verzeichnisbaum, dem "Staging-Bereich", abgelegt.
- Snap : Das endgültige .snap-Paket wird aus den zusammengesetzten Teilen im Staging-Bereich erstellt
Anmerkungen:
- Sie finden die endgültige Snap-Datei als
gopaste_1.0_amd64.snap
(in meinem Fall habe ich sie auf meinem amd64-Desktop erstellt, z. B. hätten Raspberry Pi 2-Pakete das _armhf
Architektur-Suffix).
- Sie können auch jeden Befehl ausführen einzeln:
snapcraft pull
, snapcraft build
, snapcraft stage
odersnapcraft snap
- Verwenden Sie diese Option,
snapcraft -h
um einen schnellen Überblick über alle verfügbaren Befehle zu erhalten.
Und das ist es, um einen kurzen Einblick in die Möglichkeiten von Snapcraft zu bekommen! Erfahren Sie mehr über Snapcraft>