Wenn Sie nach einer besseren Möglichkeit suchen, Software in Ihrem Linux-System zu verwalten, sollten Sie Snapcraft ausprobieren. Mit Snapcraft können Sie mit wenigen Klicks nach Software suchen, diese installieren und verwalten und gleichzeitig neue Snaps mit der Community finden, teilen und erstellen.
In diesem Tutorial erfahren Sie, wie Sie Snapcraft installieren, einen einfachen Snap erstellen und auf Ihrem Linux-System installieren.
Bereit? Bleiben Sie auf dem Laufenden und erfahren Sie, wie Snapcraft Ihre Softwareverwaltung vereinfachen kann!
Voraussetzungen
Dieses Tutorial wird eine praktische Demonstration sein, und Sie benötigen ein Linux-System, um mitzumachen. In dieser Anleitung wird Ubuntu 20.04 verwendet, aber alle Derivate funktionieren.
Installieren von Snapd (Snap Daemon) und Snapcraft
Bevor Sie Snaps erstellen oder sogar ausführen können, müssen Sie zunächst Snapd installieren, einen Daemon, der zum Ausführen von Snaps erforderlich ist. Mit Snapd können Sie auch Snapcraft auf Ihrem System installieren und aktivieren.
So installieren Sie Snapd unter Ubuntu:
1. Führen Sie Folgendes ausg apt update
Befehl zum Aktualisieren Ihrer Ubuntu-Repositories.
apt update -y
2. Als nächstes führen Sie den folgenden apt install
aus Befehl zum Installieren von Snapd.
apt install snapd -y
3. Führen Sie nach der Installation snap
aus Befehl unten, um die auf Ihrem System installierte Version von Snapd zu überprüfen.
snap --version
4. Führen Sie zuletzt snap install
aus Befehl unten, um snapcraft
zu installieren .
Snapcraft ist ein leistungsstarkes Tool, mit dem Sie Snaps für verschiedene Anwendungen erstellen können. Sie müssen nur die Abhängigkeiten für Ihren Snap angeben, und Snapcraft erledigt den Rest.
snap install --classic snapcraft
Unten sehen Sie die Ausgabe, die bestätigt, dass Snapcraft erfolgreich installiert wurde.
Ein Snap-Projekt mit Snapcraft initialisieren
Nachdem Sie Snapcraft installiert haben, können Sie jetzt Snaps erstellen. Ein Snap ist ein eigenständiges Anwendungspaket, das alle Abhängigkeiten und Bibliotheken enthält, die zum Ausführen einer Anwendung erforderlich sind. Mit einem Klick (Wortspiel beabsichtigt) können Sie schnell Anwendungen unter Linux installieren und verwalten.
Snaps sind außerdem sicher und vom Rest Ihres Systems isoliert, was dazu beiträgt, Ihr System vor Malware zu schützen. Sie können sogar Ihre Snaps in den Snap Store hochladen, damit andere sie verwenden können, oder Sie können Snaps aus dem Snap Store herunterladen, um sie auf Ihrem System zu verwenden.
Um zu sehen, wie Snapcraft in Aktion funktioniert, erstellen Sie einen einfachen Snap für eine „Hallo Welt“-Anwendung. Aber zuerst brauchen Sie ein Projektverzeichnis, um ein Snapcraft-Projekt zu initialisieren:
1. Führen Sie die folgenden Befehle aus, um ein Verzeichnis zu erstellen (mkdir
) für deinen Snap und bewege dich in dieses Verzeichnis (cd
). Dieses Verzeichnis enthält alle Dateien, die sich auf Ihren Snap beziehen, in dem Sie auch alle folgenden Befehle ausführen.
Sie müssen Leerzeichen in Ihren Verzeichnisnamen weglassen, wenn Sie mit Snapcraft arbeiten, um Probleme wie Build-Fehler zu vermeiden.
# Create a project directory
mkdir -p ~/mysnaps/hello
# Change the working directory
cd ~/mysnaps/hello
2. Führen Sie nun snapcraft
aus Befehl unten zum Initialisieren (init
) Ihr Snapcraft-Projekt.
Dieser Befehl erstellt eine snapcraft.yaml und andere Umgebungsdateien im aktuellen Verzeichnis. Diese Datei wird verwendet, um Abhängigkeiten und verschiedene Einstellungen für Ihren Snap zu deklarieren.
snapcraft init
3. Führen Sie schließlich den folgenden tree
aus Befehl, um Ihr Snap-Verzeichnis zu überprüfen. tree -a
tree -a
An diesem Punkt sollten Sie eine Verzeichnisstruktur haben, die wie die folgende aussieht. Diese Struktur wird als Fangbaum bezeichnet.
Konfigurieren und Erstellen eines Snaps
Nachdem Sie Ihr Snapcraft-Projekt initialisiert haben, sind Sie fast bereit, Ihren Snap mit Snapcraft zu erstellen. Aber zuerst müssen Sie einige Metadaten für Ihren Snap deklarieren. Diese Metadaten umfassen den Namen, die Version, die Zusammenfassung und die Beschreibung Ihres Snaps. Und Sie können auch die Lizenz für Ihr Snap- und Confinement-Level angeben.
Wie? Durch Bearbeiten der automatisch generierten snapcraft.yaml Datei, als Sie Ihr Projekt initialisiert haben.
1. Öffnen Sie die snapcraft.yaml Datei in Ihrem bevorzugten Texteditor.
nano snap/snapcraft.yaml
2. Ersetzen Sie als Nächstes den vorgenerierten Inhalt der Datei durch die folgenden Zeilen, um Metadaten für Ihren Snap zu deklarieren.
Schließen Sie die Datei jedoch noch nicht, da Sie Teile der Konfiguration nacheinander hinzufügen, um besser zu verstehen, wie der Snap konfiguriert ist.
# Your snap's name (must be in lowercase) and can contain letters, numbers, and hyphens.
name: hello
# The base snap that your snap will be built on top of.
# core18 base is based on Ubuntu 18.04 (Bionic Beaver).
base: core18
# The current snap's version (incremental)
version: '2.10'
# One-line snap description
summary: GNU Hello, the "hello world" snap
# Long snap description. It can span multiple lines and can contain Markdown formatting.
description: |
GNU hello prints a friendly greeting.
# Sets the snap's security grade (devel).
# devel grade - used for development snaps that are not for general release.
# stable grade - used for snaps considered ready for production use.
# candidate grade - used for snaps ready for final testing (before stable grade).
grade: devel
# Sets the snap's confinement level (devmode)
# devmode - the least secure level where snap has full access to the host system.
# strict - the most secure level where snap has limited access to the host system.
# classic - somewhere in between where snap has limited access to the host system
# with some security features disabled.
confinement: devmode
3. Fügen Sie den folgenden Code unter confinement
hinzu Zeile, um eine App verfügbar zu machen.
Dieser Code teilt Snapcraft mit, dass Ihr Snap eine App namens hello
enthält das kann mit dem bin/hello
ausgeführt werden Befehl.
apps:
hello:
command: bin/hello
4. Fügen Sie nun den folgenden Code am Ende der snapcraft.yaml hinzu Datei, die Ihrem Snap einen Teil hinzufügt. Ein Teil beschreibt die Komponenten Ihres Snaps, wie sie aufgebaut sein sollten und wo sie zu finden sind.
Dieser Code fügt einen Teil namens gnu-hello
hinzu , basierend auf dem offiziellen Hello-Paket von Ubuntu 18.04.
Beachten Sie, dass Ihr Snap mehrere Teile enthalten kann, aber in diesem Tutorial benötigen Sie nur einen.
parts:
gnu-hello:
source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
plugin: autotools
An diesem Punkt sollten Sie eine snapcraft.yaml haben Datei, die wie die folgende aussieht. Speichern Sie die Änderungen und schließen Sie die Datei.
# Your snap's name (must be in lowercase) and can contain letters, numbers, and hyphens.
name: hello
# The base snap that your snap will be built on top of.
# core18 base, which is based on Ubuntu 18.04 (Bionic Beaver).
base: core18
# The current snap's version (incremental)
version: '2.10'
# One-line snap description
summary: GNU Hello, the "hello world" snap
# Long snap description. It can span multiple lines and can contain Markdown formatting.
description: |
GNU hello prints a friendly greeting.
# Sets the snap's security grade (devel).
# devel grade - used for development snaps that are not for general release.
# stable grade - used for snaps considered ready for production use.
# candidate grade - used for snaps ready for final testing (before stable grade).
grade: devel
# Sets the snap's confinement level (devmode)
# devmode - the least secure level where snap has full access to the host system.
# strict - the most secure level where snap has limited access to the host system.
# classic - somewhere in between where snap has limited access to the host system
# with some security features disabled.
confinement: devmode
# Expose an application called "hello" that can be run with the bin/hello command.
apps:
hello:
command: bin/hello
# Adding parts to describe the components of your snap,
# how they should be built and where they can be found.
parts:
gnu-hello:
source: http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
plugin: autotools
5. Führen Sie abschließend den folgenden snapcraft
aus Befehl nach all der harten Arbeit, um Ihren ersten Snap zu erstellen.
snapcraft
Beim ersten Ausführen von snapcraft
Befehl, werden Sie aufgefordert, Multipass zu installieren, wie unten gezeigt. Multipass verwaltet virtuelle Maschinen zum Erstellen von Snaps, und Snapcraft verwendet virtuelle Maschinen zum Erstellen von Snaps in einer sauberen und isolierten Umgebung.
Geben Sie j ein und drücken Sie Enter weitermachen.
Der Erstellungsprozess lädt alle Abhängigkeiten herunter und erstellt sie aus der Quelle, was eine Weile dauert. Nach dem Erstellen sehen Sie eine Ausgabe ähnlich der folgenden.
Wie Sie sehen, hello_2.10_amd64.snap ist das erstellte Paket, das Ihr Snap-Paket ist und jetzt auf jeder Linux-Distribution installiert werden kann, die Snaps unterstützt.
Snap testen
Sie haben Ihren Snap erfolgreich erstellt, aber woher wissen Sie, dass er funktioniert? Stellen Sie Ihren neu erstellten Snap auf die Probe, indem Sie ihn auf Ihrem System installieren und Ihre „Hello World“-Anwendung ausführen.
1. Führen Sie den folgenden snap
aus Befehl an install
Ihr neu erstelltes Snap-Paket (hello_2.10_amd64.snap
) auf Ihrem System.
snap install --devmode hello_2.10_amd64.snap
2. Als nächstes führen Sie hello
aus Befehl unten, den Sie in der snapcraft.yaml deklariert haben Datei zum Ausführen von hello
App, die in Ihrem Snap enthalten ist.
hello
Wenn alles wie erwartet funktioniert hat, sollten Sie die Meldung „Hello, world!“ sehen. Nachricht, die wie gezeigt auf dem Bildschirm gedruckt wird.
3. Führen Sie abschließend snap list
aus Befehl unten, um die installierten Snaps (hello
) Information.
snap list hello
Schlussfolgerung
Softwareverwaltung kann eine mühsame Arbeit sein, es sei denn, Sie haben ein zuverlässiges Tool zur Verfügung. Und in diesem Tutorial haben Sie gelernt, wie Sie Snapcraft installieren und verwenden, um einen einfachen Snap zum problemlosen Verwalten und Installieren von Software auf Ihrem Linux-System zu erstellen.
Nachdem Sie gesehen haben, wie Snapcraft funktioniert, warum beginnen Sie nicht mit der Erstellung komplexerer Snaps und laden sie in den Snap Store hoch, damit andere sie installieren und verwenden können?