Was ist Snapcraft?

16

Ich habe einen bissigen Ubuntu-Kern auf einem Raspberry Pi 2-Gerät ausprobiert und gehört, dass ich Snapcraft verwenden kann, um daran zu entwickeln. Jetzt höre ich, dass Snaps auf dem Desktop und dem Server für Ubuntu 16.04 und andere Distributionen verfügbar sind.

Was ist Snapcraft und wie kann ich es verwenden?

David Planella
quelle

Antworten:

27

Snapcraft ist eine Reihe von Tools, die unter dem snapcraftBefehl 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>.snapBefehl 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.yamlDatei, 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.yamlDatei 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 snapcraftBefehl 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:

  1. Pull : Es zieht den Code aus dem gewünschten Gopaste-Teil aus einem entfernten Github-Repo
  2. Bauen : Es baut Gopaste lokal auf
  3. Phase : Nach dem Build werden die Teile in einem einzigen Verzeichnisbaum, dem "Staging-Bereich", abgelegt.
  4. 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 _armhfArchitektur-Suffix).
  • Sie können auch jeden Befehl ausführen einzeln: snapcraft pull, snapcraft build, snapcraft stageodersnapcraft snap
  • Verwenden Sie diese Option, snapcraft -hum 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>

David Planella
quelle
9
Ich schätze den Kommentar, aber ich bin nicht einer der Snapcraft-Entwickler, aber ich bin mir auch nicht sicher, wie es Spam sein kann, zu erklären, was ein Tool zum Erstellen von Ubuntu-Snaps ist und wie es auf einer Ubuntu-Site verwendet wird.
David Planella
Der Wortlaut in der Liste der Funktionen hat das bei mir ausgelöst. Und auch"And that's it for a quick glimpse of what Snapcraft can do!"
Ismael Miguel
1
Ich würde David hier zustimmen.
Dholbach
1
Der bzr-Teil sollte durch äquivalente git-Befehle ersetzt werden, da sich der Code jetzt auf Github befindet.
Lapisdecor
1
Dazu müssen Sie auch git und gcc installieren, wenn Sie git und nicht bzr verwenden.
Lapisdecor