In den letzten Jahren wurde die Linux-Community mit bemerkenswerten Fortschritten im Bereich des Paketmanagements auf Linux-Systemen gesegnet, insbesondere bei universellen oder plattformübergreifenden Softwarepaketen und -verteilungen. Einer dieser Fortschritte ist das von Canonical, den Machern des beliebten Ubuntu Linux, entwickelte Snap-Paketformat.
Was sind Snap-Pakete?
Snaps sind plattformübergreifend, unabhängig von Abhängigkeiten und einfach zu installierende Anwendungen, die mit allen erforderlichen Abhängigkeiten verpackt sind, um auf allen wichtigen Linux-Distributionen ausgeführt zu werden. Aus einem einzigen Build wird ein Snap (Anwendung) auf allen unterstützten Linux-Distributionen auf dem Desktop, in der Cloud und im IoT ausgeführt. Unterstützte Distributionen umfassen Ubuntu, Debian, Fedora, Arch Linux, Manjaro und CentOS/RHEL.
Snaps sind sicher – sie sind eingegrenzt und in einer Sandbox ausgeführt, sodass sie das gesamte System nicht gefährden. Sie laufen unter verschiedenen Eingrenzungsniveaus (das ist der Grad der Isolierung vom Basissystem und untereinander). Besonders zu beachten ist, dass jeder Snap von seinem Ersteller sorgfältig ausgewählte Schnittstellen hat, basierend auf den Anforderungen des Snaps, um den Zugriff auf bestimmte Systemressourcen außerhalb ihrer Eingrenzung, wie z. B. Netzwerkzugriff, Desktopzugriff und mehr, zu ermöglichen.
Ein weiteres wichtiges Konzept im Snap-Ökosystem sind Channels. Ein Kanal bestimmt, welche Version eines Snap installiert und für Updates verfolgt wird, und besteht aus und wird unterteilt in Tracks, Risikostufen und Zweige.
Die Hauptkomponenten des Snap-Paketverwaltungssystems sind:
- snapd – der Hintergrunddienst, der Ihre Snaps auf einem Linux-System verwaltet und pflegt.
- snap – sowohl das Anwendungspaketformat als auch das Befehlszeilen-Tool, das zum Installieren und Entfernen von Snaps sowie für viele andere Aufgaben im Snap-Ökosystem verwendet wird.
- snapcraft – das Framework und leistungsstarke Befehlszeilen-Tool zum Erstellen von Snaps.
- Snap Store – ein Ort, an dem Entwickler ihre Snaps teilen können und Linux-Benutzer nach ihnen suchen und sie installieren können.
Außerdem aktualisieren sich Snaps automatisch. Sie können konfigurieren, wann und wie Updates erfolgen. Standardmäßig überprüft der snapd-Dämon bis zu viermal am Tag nach Updates: Jede Aktualisierungsüberprüfung wird als Auffrischung bezeichnet. Sie können auch manuell eine Auffrischung initiieren.
Wie man Snapd in Linux installiert
Wie oben beschrieben, ist der snapd-Dämon der Hintergrunddienst, der Ihre Snap-Umgebung auf einem Linux-System verwaltet und pflegt, indem er die Eindämmungsrichtlinien implementiert und die Schnittstellen kontrolliert, die Snaps den Zugriff auf bestimmte Systemressourcen ermöglichen. Er bietet auch den snap-Befehl und erfüllt viele andere Zwecke.
Um das Paket snapd auf Ihrem System zu installieren, führen Sie den entsprechenden Befehl für Ihre Linux-Distribution aus.
------------ [On Debian and Ubuntu] ------------ $ sudo apt update $ sudo apt install snapd ------------ [On Fedora Linux] ------------ # dnf install snapd ------------ [On CentOS and RHEL] ------------ # yum install epel-release # yum install snapd ------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------ $ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy $ sudo zypper --gpg-auto-import-keys refresh $ sudo zypper dup --from snappy $ sudo zypper install snapd ------------ [On Manjaro Linux] ------------ # pacman -S snapd ------------ [On Arch Linux] ------------ # git clone https://aur.archlinux.org/snapd.git # cd snapd # makepkg -si
Nach der Installation von snapd auf Ihrem System aktivieren Sie die systemd-Einheit, die den Hauptkommunikationssockel von snap verwaltet, mithilfe der systemctl-Befehle wie folgt.
Auf Ubuntu und seinen Derivaten sollte dies automatisch durch den Paketinstallationsprozess ausgelöst werden.
$ sudo systemctl enable --now snapd.socket
Beachten Sie, dass Sie den snap-Befehl nicht ausführen können, wenn der snapd.socket nicht aktiv ist. Führen Sie die folgenden Befehle aus, um zu überprüfen, ob er aktiv ist und automatisch beim Systemstart gestartet wird.
$ sudo systemctl is-active snapd.socket $ sudo systemctl status snapd.socket $ sudo systemctl is-enabled snapd.socket

Aktivieren Sie als nächstes die Unterstützung für klassische Snaps, indem Sie einen symbolischen Link zwischen /var/lib/snapd/snap und /snap erstellen, wie folgt.
$ sudo ln -s /var/lib/snapd/snap /snap
Um die Version von snapd und dem Snap-Befehlszeilentool auf Ihrem System zu überprüfen, führen Sie den folgenden Befehl aus.
$ snap version

So installieren Sie Snaps in Linux
Der snap-Befehl ermöglicht es Ihnen, Snaps zu installieren, zu konfigurieren, zu aktualisieren und zu entfernen und mit dem größeren Snap-Ökosystem zu interagieren.
Vor der Installation eines Snaps können Sie überprüfen, ob es im Snap-Store vorhanden ist. Wenn beispielsweise die Anwendung in die Kategorie „Chat-Server“ oder „Mediaplayer“ gehört, können Sie diese Befehle ausführen, um danach zu suchen. Dies wird den Store nach verfügbaren Paketen im stabilen Kanal abfragen.
$ snap find "chat servers" $ snap find "media players"

Um detaillierte Informationen über einen Snap anzuzeigen, zum Beispiel rocketchat-server, können Sie seinen Namen oder Pfad angeben. Beachten Sie, dass Namen sowohl im Snap-Store als auch in den installierten Snaps gesucht werden.
$ snap info rocketchat-server

Um einen Snap auf Ihrem System zu installieren, zum Beispiel rocketchat-server, führen Sie den folgenden Befehl aus. Wenn keine Optionen angegeben werden, wird ein Snap installiert, der dem „stabilen“ Kanal folgt, mit strenger Sicherheitsbeschränkung.
$ sudo snap install rocketchat-server

Sie können sich entscheiden, aus einem anderen Kanal zu installieren: Edge, Beta oder Kandidat, aus welchem Grund auch immer, unter Verwendung der Optionen --edge
, --beta
oder --candidate
. Oder verwenden Sie die Option --channel
und geben Sie den Kanal an, aus dem Sie installieren möchten.
$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server $ sudo snap install --candidate rocketchat-server
Snaps in Linux verwalten
In diesem Abschnitt erfahren Sie, wie Sie Snaps in einem Linux-System verwalten können.
Anzeigen installierter Snaps
Um eine Zusammenfassung der auf Ihrem System installierten Snaps anzuzeigen, verwenden Sie den folgenden Befehl.
$ snap list

Um die aktuelle Revision eines verwendeten Snap aufzulisten, geben Sie dessen Namen an. Sie können auch alle verfügbaren Revisionen auflisten, indem Sie die Option --all
hinzufügen.
$ snap list mailspring OR $ snap list --all mailspring

Aktualisieren und Zurücksetzen von Snaps
Sie können einen bestimmten Snap aktualisieren oder alle Snaps im System aktualisieren, wenn keine angegeben sind, wie folgt. Der Befehl refresh überprüft den Kanal, dem der Snap folgt, und lädt eine neuere Version des Snaps herunter und installiert sie, wenn verfügbar.
$ sudo snap refresh mailspring OR $ sudo snap refresh #update all snaps on the local system

Nach dem Aktualisieren einer App auf eine neue Version können Sie mit dem Befehl revert zu einer zuvor verwendeten Version zurückkehren. Beachten Sie, dass auch die mit der Software verbundenen Daten zurückgesetzt werden.
$ sudo snap revert mailspring

Wenn Sie alle Revisionen von mailspring überprüfen, ist die neueste Revision deaktiviert, eine zuvor verwendete Revision ist jetzt aktiv.
$ snap list --all mailspring

Deaktivieren/Aktivieren und Entfernen von Snaps
Sie können einen Snap deaktivieren, wenn Sie ihn nicht mehr verwenden möchten. Wenn ein Snap deaktiviert ist, stehen dessen Binärdateien und Dienste nicht mehr zur Verfügung, aber alle Daten sind weiterhin vorhanden.
$ sudo snap disable mailspring
Wenn Sie den Snap erneut verwenden müssen, können Sie ihn wieder aktivieren.
$ sudo snap enable mailspring
Um einen Snap vollständig zu entfernen, verwenden Sie den Befehl remove. Standardmäßig werden alle Revisionen eines Snaps entfernt.
$ sudo snap remove mailspring
Um eine bestimmte Revision zu entfernen, verwenden Sie die Option --revision
wie folgt.
$ sudo snap remove --revision=482 mailspring
Es ist wichtig zu beachten, dass wenn Sie einen snap entfernen, werden seine Daten (wie interne Benutzer-, System- und Konfigurationsdaten) von snapd (Version 2.39 und höher) als Schnappschuss gespeichert und für 31 Tage im System gespeichert. Falls Sie den Snap innerhalb der 31 Tage neu installieren, können Sie die Daten wiederherstellen.
Schlussfolgerung
Snaps werden in der Linux-Community immer beliebter, da sie eine einfache Möglichkeit bieten, Software auf jeder Linux-Distribution zu installieren. In diesem Leitfaden haben wir gezeigt, wie man Snaps in Linux installiert und verwendet. Wir haben behandelt, wie man snapd installiert, Snaps installiert, installierte Snaps anzeigt, Snaps aktualisiert und zurücksetzt sowie Snaps deaktiviert/aktiviert und entfernt.
Sie können Fragen stellen oder uns über das untenstehende Feedback-Formular erreichen. Im nächsten Teil dieses Leitfadens werden wir das Verwalten von Snaps (Befehle, Aliase, Dienste und Schnappschüsse) in Linux behandeln.