So installieren und verwenden Sie Snapcraft unter Linux

Index
  1. Was ist ein Snap-Paket?
  2. Warum Snap-Pakete verwenden?
  3. Installieren von Snapd unter Linux
  4. Snapcraft installieren
  5. Verwenden von Snapcraft zum Erstellen eines Snap-Pakets
    1. Ein Projekt für deinen Snap starten
    2. Hinzufügen von Metadaten der obersten Ebene
    3. Offenlegung Ihrer Anwendung
    4. Hinzufügen eines Teils
    5. Erstellen des Snap-Pakets
    6. Testen des Snap-Pakets
  6. Häufig gestellte Fragen
    1. Ist Snapcraft sicher?
    2. Ist Snap wie Docker?
    3. Ist snap besser als apt oder apt-get?

Haben Sie sich jemals gefragt, warum einige Linux-Distributionen die Installation von Software so einfach machen, während andere ziemlich schwierig sein können? Der Unterschied liegt im verwendeten Paketformat. Einige Distributionen verwenden .deb-Dateien, während andere .rpm-Dateien verwenden.

Aber was wäre, wenn es ein Paketformat gäbe, das auf jeder Distribution verwendet werden könnte? Hier kommt Snapcraft ins Spiel. In diesem Tutorial erfahren Sie, wie Sie Snapcraft installieren und verwenden, um Snap-Pakete unter Linux zu erstellen und zu installieren.

Was ist ein Snap-Paket?

Ein Snap-Paket ist ein eigenständiges Anwendungspaket, das alle erforderlichen Abhängigkeiten und Bibliotheken enthält, sodass Anwendungen einfach installiert und aktualisiert werden können, ohne sich um Abhängigkeitsprobleme kümmern zu müssen.

Warum Snap-Pakete verwenden?

Die Verwendung von Snap-Paketen bietet mehrere Vorteile:

  • Snaps sind einfach zu installieren und zu aktualisieren. Sie können ein Snap-Paket mit einem einzigen Befehl installieren, und Snaps werden automatisch im Hintergrund aktualisiert.
  • Snaps sind sicher und geschützt. Da alle Abhängigkeiten im Snap-Paket enthalten sind, besteht kein Risiko eines Abhängigkeitskonflikts. Außerdem sind Snaps vom Rest des Systems isoliert, sodass sie nicht auf Ihre Daten oder andere Anwendungen auf Ihrem System zugreifen können.
  • Sie können Ihre Lieblings-App auf jeder Linux-Distribution installieren, die Snaps unterstützt.

Installieren von Snapd unter Linux

Snapd ist ein Daemon, der die Installation und Verwendung von Snaps ermöglicht und installiert werden muss, bevor Sie Snapcraft verwenden können. Wenn Sie Snapd installieren, wird auch ein Befehlszeilenschnittstellentool (CLI) namens snap installiert. Mit diesem Tool können Sie Ihre Snaps verwalten.

Um Snapd auf Ubuntu zu installieren, öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein, geben Sie Ihr Benutzerkennwort ein, wenn Sie dazu aufgefordert werden.

sudo apt update -y && sudo apt install snapd -y

Unter CentOS müssen Sie das EPEL-Repository aktivieren, bevor Sie Snapd installieren können. Geben Sie dazu zunächst folgenden Befehl in Ihr Terminal ein:

sudo dnf install epel-release -y && sudo dnf update -y

Installieren Sie dann Snapd mit dem folgenden Befehl. Geben Sie das Passwort für den sudo-Benutzer ein, wenn Sie dazu aufgefordert werden.

sudo dnf install snapd -y

Installieren Sie in Fedora mit dem Befehl:

Installieren Sie in Arch Linux snapd von AUR. Sehen Sie sich diese AUR-Hilfsprogramme an, die Ihnen helfen, Pakete von Drittanbietern einfach zu installieren.

Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um die Einheit snapd.socket systemd zu aktivieren. Dadurch wird sichergestellt, dass der Snapd-Daemon automatisch gestartet wird, wenn Ihr System hochfährt.

sudo systemctl enable --now snapd.socket

Erstellen Sie einen symbolischen Link zwischen „/var/lib/snapd/snap“ und „/snap“, um die klassische Snap-Unterstützung zu aktivieren.

sudo ln -s /var/lib/snapd/snap /snap

Nachdem Sie Snapd auf Ihrem Linux-System installiert haben, überprüfen Sie die Version von Snapd mit dem folgenden Befehl. Sie sehen eine Ausgabe ähnlich der folgenden.

Sie können den Status des Snapd-Dienstes auch mit dem folgenden Befehl überprüfen.

sudo systemctl status snapd

Snapcraft installieren

Bevor Sie Snap-Pakete erstellen können, müssen Sie Snapcraft installieren, das Tool zum Erstellen von Snap-Paketen.

Führen Sie den folgenden Befehl aus, um Snapcraft unter Linux zu installieren. Die klassische Flagge weist Snap an, den klassischen Beschränkungsmodus zu verwenden. Dieses Flag ist erforderlich, da Snapcraft den neueren, restriktiveren Confinement-Modus noch nicht unterstützt.

sudo snap install snapcraft --classic

Stellen Sie sicher, dass Snapcraft installiert ist, indem Sie die Versionsnummer überprüfen.

Verwenden von Snapcraft zum Erstellen eines Snap-Pakets

Nun zum interessanten Teil: Verwenden von Snapcraft zum Erstellen eines Snap-Pakets für eine Anwendung. In diesem Tutorial erstellen wir einen einfachen Hallo-Welt-Snap, einen einfachen Snap, der „Hello, world!“ druckt. wenn Sie es ausführen. Wenden Sie nach Abschluss dieses Lernprogramms denselben Prozess an, um Snapshots für Ihre eigenen Anwendungen zu erstellen.

Der Einfachheit halber führen Sie die folgenden Schritte durch den Prozess zum Erstellen eines Snaps in Ubuntu. Die gleichen Schritte können auch auf andere Linux-Distributionen angewendet werden.

Ein Projekt für deinen Snap starten

Erstellen Sie zunächst ein Projektverzeichnis für Ihren Snap. Es wird das Arbeitsverzeichnis für Ihr Projekt und hilft Ihnen, Ihre Projektdateien zu organisieren.

  1. Erstellen Sie mit dem folgenden Befehl ein Projektverzeichnis namens „hello“:

Das Flag -p weist den Befehl mkdir an, alle übergeordneten Verzeichnisse zu erstellen, die noch nicht vorhanden sind. In diesem Fall wird das mysnaps-Verzeichnis erstellt, falls es nicht existiert. Sie können alle zukünftigen Snaps in diesem Verzeichnis ablegen.

  1. Wechseln Sie in das neu erstellte Projektverzeichnis und initialisieren Sie das Projekt mit dem Befehl init, um eine Datei mit dem Namen „snapcraft.yaml“ in Ihrem Projektverzeichnis zu erstellen. Sie können die Datei „snapcraft.yaml“ verwenden, um Ihren Snap später zu konfigurieren.
cd ~/mysnaps/hello snapcraft init

  1. Überprüfen Sie die Struktur Ihres Projekts mit dem Baumbefehl, der eine grafische Darstellung Ihres Projektverzeichnisses druckt.

Sie sehen eine Ausgabe ähnlich der folgenden.

Hinzufügen von Metadaten der obersten Ebene

Snapcraft bietet viele Metadaten, die Sie verwenden können, um Ihr Snap-Paket zu beschreiben. In diesem Tutorial fügen wir einige grundlegende Informationen hinzu, die für jeden Snap erforderlich sind.

  1. Öffnen Sie die Datei „snapcraft.yaml“ in Ihrem bevorzugten Texteditor. Wir haben in diesem Tutorial Nano verwendet.
  1. Löschen Sie die Platzhalterzeilen und ersetzen Sie sie durch den folgenden Inhalt.
Name: Hallo Basis: Core18 Version: '2.10' Zusammenfassung: GNU Hallo, der Snap "Hallo Welt" Beschreibung: |  GNU hello gibt einen freundlichen Gruß aus.  Klasse: devel Einschränkung: devmode

Hier haben wir die Info unseres Snaps geändert. Die Core18-Basis teilt Snapcraft mit, dass Sie einen Snap basierend auf Ubuntu Core 18 erstellen möchten. Die Confinement: devmode-Metadaten teilen Snapcraft mit, dass Sie einen Snap erstellen möchten, der nicht eingeschränkt ist, was für Entwicklungs- und Testzwecke nützlich ist.

Offenlegung Ihrer Anwendung

  1. Fügen Sie die folgenden Zeilen nach dem Confinement-Feld in Ihrer „snapcraft.yaml“-Datei hinzu. Hier geben wir die Anwendung an, die wir verpacken möchten.
Apps: Hallo: Befehl: bin/hello

In diesem Fall haben wir nur eine App, hallo. Die Befehlszeile teilt Snapcraft mit, welche Binärdatei ausgeführt werden soll, wenn der Snap installiert ist.

Hinzufügen eines Teils

  1. Fügen Sie in einer neuen Zeile den folgenden Teilebefehl hinzu:
Teile: gnu-hello: Quelle: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz Erweiterung: autotools

Dies teilt Snapcraft mit, welche Software Sie in Ihr Snap-Paket aufnehmen möchten.

Um diesen Hello-World-Snap zu erstellen, müssen Sie den Quellcode von GNU Hello herunterladen und dann das Autotool-Plugin verwenden, um die Anwendung aus dem Quellcode zu erstellen.

  1. An diesem Punkt sieht Ihre snapcraft.yaml-Datei wie unten aus. Speichern und schließen Sie die Datei snapcraft.yaml, bevor Sie mit dem nächsten Schritt fortfahren.

Erstellen des Snap-Pakets

Nachdem Sie Ihren Snap definiert haben, ist es an der Zeit, ihn zu erstellen. Führen Sie den folgenden Befehl aus, um ein Snap-Paket zu erstellen.

Sie werden aufgefordert, „Multipass“ zu installieren, falls Sie es nicht auf Ihrem System haben. Snapcraft verwendet Multipass, um eine isolierte Umgebung zum Erstellen von Snaps innerhalb einer virtuellen Maschine zu erstellen. Geben Sie j ein und drücken Sie die Eingabetaste, um fortzufahren.

Der Erstellungsprozess kann je nach Internetverbindung und Computerspezifikationen eine Weile dauern. Sobald der Erstellungsprozess abgeschlossen ist, sehen Sie etwas Ähnliches wie die folgende Ausgabe.

Am Ende finden Sie im Projektverzeichnis eine „hello_2.10_amd64.snap“.

Testen des Snap-Pakets

Führen Sie den folgenden Befehl aus, um zu testen, ob Ihr Snap-Paket funktioniert:

sudo snap install --devmode hello_2.10_amd64.snap

Das Flag --devmode teilt Snap mit, dass Sie Snap im Devmode installieren möchten, was für Testzwecke nützlich ist.

Führen Sie als Nächstes den folgenden Befehl aus, um Ihre Hello-World-Anwendung auszuführen.

Sie sehen die folgende Ausgabe, die anzeigt, dass Ihr Hello-World-Snap wie erwartet funktioniert.

Führen Sie den folgenden Befehl aus, um die Version Ihrer Hello-World-Anwendung anzuzeigen.

Wenn beim Testen des Snaps ein Problem auftritt, erhalten Sie weitere Informationen, indem Sie das Flag --debug verwenden und den folgenden Befehl ausführen.

Häufig gestellte Fragen

Ist Snapcraft sicher?

Absolut! Snapcraft ist das offizielle Tool zum Erstellen von Snaps. Es wird von Canonical, dem Unternehmen hinter Ubuntu, entwickelt und gewartet. Seien Sie versichert, dass Snapcraft sicher und zuverlässig ist.

Ist Snap wie Docker?

Ja und nein. Snap und Docker sind beides Container-Technologien, dienen aber unterschiedlichen Zwecken. Stellen Sie sich Snap als Verpackungsformat für Ihre Anwendung und Docker als Laufzeitumgebung für Ihre Anwendung vor. Sie können WordPress mit Nginx und PHP in einem Docker-Container mit den offiziellen WordPress- und Nginx-Images einrichten, aber kein Snap-Paket für Ihre WordPress-Site erstellen.

Ist snap besser als apt oder apt-get?

Es hängt davon ab, ob. Beide Systeme haben ihre eigenen Vor- und Nachteile. Apt und apt-get sind die traditionellen Paketmanager für Debian-basierte Linux-Distributionen. Es gibt es schon lange und es ist sehr stabil, aber es hat ein paar Nachteile. Beispielsweise unterstützt apt keine Versionierung und kein Rollback. Snap hingegen unterstützt sowohl Versionierung als auch Rollback. Wenn Sie also mit neuen Versionen Ihrer Anwendung experimentieren möchten, ist Snap der richtige Weg. Wenn Sie jedoch ein stabiles System wünschen, sind apt und apt-get die bessere Wahl.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Go up