Der Snappy-Paketmanager wurde von Canonical, dem Unternehmen hinter Ubuntu, entwickelt und sollte ursprünglich auf letzterem verwendet werden. Er ist eine kostenlose Open-Source-Software zum Installieren und Verwalten von Snap-Paketen. Der Zweck von Snap-Paketen ist, genau wie Flatpaks, die Verteilung von Sandbox- und eigenständigen Anwendungen (Anwendungen werden zusammen mit ihren Abhängigkeiten gepackt).
Der Snappy-Paketmanager und seine Infrastruktur landeten auf anderen Distributionen als Ubuntu. In diesem Tutorial sehen wir, wie man es installiert und auf der neuesten Version von Fedora verwendet.
In diesem Tutorial lernen Sie:
- So installieren Sie den Snap-Paketmanager
- So suchen Sie im Snap Store nach Paketen
- So installieren und aktualisieren Sie Snap-Pakete
- So listen Sie installierte Snap-Pakete auf
- So erstellen und verwalten Sie Snapshots eines Pakets
- So entfernen Sie Snap-Pakete
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Vertriebsunabhängig |
Software | snapd |
Andere | Root-Rechte zum Verwalten von Software |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass gegebene Linux-Befehle als normaler nicht-privilegierter Benutzer ausgeführt werden |
Installation
Um den Snappy-Paketmanager auf Fedora zu verwenden, müssen wir zunächst das Paket mit der Software installieren. Zum Glück für uns ist es sehr einfach, da es in den offiziellen Repositories von Fedora verfügbar ist. Wir können die Installation grafisch oder mit dem dnf
durchführen Paketmanager von unserem geliebten Terminal-Emulator. Hier ist der Befehl, den wir ausführen möchten:
$ sudo dnf install snapd
Das snap-confine
und snapd-selinux
-Paket werden als Abhängigkeiten von snapd installiert:Ersteres enthält die Software, die zum Anwenden von Beschränkungen auf Snap-Anwendungen verwendet wird, während Letzteres die Richtlinie bereitstellt, die es Snapd ermöglicht, ordnungsgemäß unter SELinux ausgeführt zu werden. Im Rahmen der Installation wird die snapd.socket
wird durch die Verwendung von systemd aktiviert.
Nach Paketen suchen
Die Art und Weise, wie wir mit Snap-Paketen interagieren, ist die Verwendung von snap
Anwendung. Eine der grundlegendsten Aktionen, die wir ausführen müssen, besteht darin, herauszufinden, ob eine bestimmte Software im Snap Store verfügbar ist. Um diese Aktion auszuführen, können wir den Snap-Befehl „find“ oder „search“ verwenden (letzteres ist ein Alias für ersteres). Angenommen, wir möchten das Snap-Paket „gimp“ installieren. Um zu sehen, ob die Anwendung verfügbar ist, können wir Folgendes ausführen:
$ snap find gimp
Wie Sie sehen können, erfordert der Befehl keine Administratorrechte. Es gibt die folgende Ausgabe zurück:
Name Version Publisher Notes Summary gimp 2.10.28 snapcrafters - GNU Image Manipulation Program gutenprint-printer-app 1.0 openprinting✓ - Gutenprint Printer Application photogimp 2.10.20 pedro.ermarinho - Patch para o GIMP djpdf 0.1.6 unrud - Create small, searchable PDFs from scanned documents lazpaint 7.1.6 chronoscz - Image editor with raster and vector layers.
Informationen zu den verfügbaren Paketen, die unseren Suchkriterien entsprechen, werden zurückgegeben:
- Der Name des Pakets
- Die Version des Snap-Pakets
- Der Snap-Publisher
- Eventuelle Anmerkungen zum Paket
- Eine kurze Paketbeschreibung
Snap-Pakete installieren
Um ein Snap-Paket zu installieren, müssen wir lediglich den Snap-Befehl „install“ verwenden. Nehmen wir als Beispiel an, wir möchten gimp
installieren Anwendung, nach der wir im vorherigen Schritt gesucht haben. Hier ist der Befehl, den wir ausführen würden:
$ sudo snap install gimp
Standardmäßig, sofern nicht anders angegeben, werden Pakete aus dem „stable“-Kanal installiert. Sobald wir den obigen Befehl ausgeführt haben, können wir den Installationsfortschritt verfolgen, indem wir die Terminalausgabe lesen:
2022-03-29T14:25:15+02:00 INFO Waiting for automatic snapd restart... gimp 2.10.28 from Snapcrafters installed
Neuere Versionen von Snaps unterstützen den „Classic Confinement“-Modus. Wenn ein Snap-Paket in diesem Modus installiert wird, ist es tatsächlich nicht beschränkt, sodass es auf Ressourcen auf dem Hostsystem zugreifen kann. Wenn wir ein Paket in diesem Modus installieren möchten, müssen wir den Befehl „install“ mit dem --classic
ausführen Option.
Dateien in Bezug auf Snap-Pakete und ihre Abhängigkeiten werden auf dem System mithilfe des schreibgeschützten SquashFS in Form von Loop-Geräten bereitgestellt, die in den entsprechenden Verzeichnissen unter /var/lib/snapd
gemountet werden . Wir können dies deutlich sehen, wenn wir uns die Ausgabe von lsblk
ansehen Befehl:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 43.6M 1 loop /var/lib/snapd/snap/snapd/15177 loop1 7:1 0 55.5M 1 loop /var/lib/snapd/snap/core18/2344 loop2 7:2 0 4K 1 loop /var/lib/snapd/snap/bare/5 loop3 7:3 0 65.2M 1 loop /var/lib/snapd/snap/gtk-common-themes/1519 loop4 7:4 0 164.8M 1 loop /var/lib/snapd/snap/gnome-3-28-1804/161 loop5 7:5 0 391.3M 1 loop /var/lib/snapd/snap/gimp/383
Für jedes installierte Snap-Paket ist ein Loop-Block-Gerät vorhanden. Im Falle des Snaps „gimp“, wenn wir den Inhalt von /var/lib/snapd/snap/gimp/383
überprüfen mountpoint (383 ist die Revision des Snap-Pakets – mehrere Revisionen können gleichzeitig installiert werden), können wir einen ganzen Dateisystembaum sehen, der die Anwendungsdateien hostet:
$ ls /var/lib/snapd/snap/gimp/383 bin data-dir etc lib meta sbin snap usr var
Um die Anwendung so starten zu können, wie wir es nach einer systemeigenen Paketinstallation tun würden, muss die Datei /var/lib/snapd/snap/bin
Verzeichnis muss an unseren PATH
angehängt werden . Dies sollte automatisch als Teil der snapd-Installation erfolgen. Wir können es überprüfen, indem wir den Wert der Variablen überprüfen:
$ echo $PATH /home/egdoc/.local/bin:/home/egdoc/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin
Paket aktualisieren
Mehrere Revisionen eines Snap-Pakets können gleichzeitig vorhanden sein. Wir haben kurz gesehen, dass die derzeit installierte Revision des Gimp-Snap-Pakets 383 ist. Die derzeit aktive Version ist symbolisch mit /var/lib/snapd/snap/<package>/current
verknüpft . Im Falle von Gimp:
$ ls -l /var/lib/snapd/snap/gimp drwxr-xr-x. 11 root root 146 Nov 8 17:14 383 lrwxrwxrwx. 1 root root 3 Mar 29 14:27 current -> 383
Um zu prüfen, ob eine neue Revision eines Snap-Pakets verfügbar ist, und es zu aktualisieren, können wir refresh
verwenden Befehl. Wenn wir in diesem Fall versuchen, das gimp-Paket zu aktualisieren, werden wir benachrichtigt, dass keine Updates verfügbar sind:
$ sudo snap refresh gimp snap "gimp" has no updates available
Wenn wir den refresh
verwenden Befehl, ohne einen Paketnamen als Argument anzugeben, sucht die Anwendung nach Updates für alle auf dem System installierten Snap-Pakete.
Installierte Snap-Pakete auflisten
Um einen Bericht über die aktuell installierten Snap-Pakete zu erhalten, müssen wir lediglich den Befehl „list“ des Snap-Dienstprogramms verwenden. Sehen wir uns ein Beispiel für den Befehl in Aktion an:
$ snap list Name Version Rev Tracking Publisher Notes bare 1.0 5 latest/stable canonical✓ base core18 20220309 2344 latest/stable canonical✓ base gimp 2.10.28 383 latest/stable snapcrafters - gnome-3-28-1804 3.28.0-19-g98f9e67.98f9e67 161 latest/stable canonical✓ - gtk-common-themes 0.1-59-g7bca6ae 1519 latest/stable canonical✓ - snapd 2.54.4 15177 latest/stable canonical✓ snapd
Wir haben „gimp“ explizit installiert, also wurden alle anderen Pakete als Abhängigkeiten oder als „Kern“ der Snap-Infrastruktur installiert. Ein Häkchen hinter dem Namen des Paketherausgebers bedeutet, dass es bestätigt wurde.
Paket-Snapshots erstellen und verwalten
Ein nettes Feature des Snap-Paket-Ökosystems ist die Möglichkeit, Snapshots von System-, Benutzer- und Konfigurationsdaten zu erstellen, die einem Paket zugeordnet sind. Snapshots werden automatisch erstellt, wenn ein Snap-Paket entfernt wird, können aber auch manuell mit save
erstellt werden Befehl. Um beispielsweise einen Snapshot des „gimp“-Pakets zu erstellen, würden wir Folgendes ausführen:
$ sudo snap save gimp
Wenn wir keinen Paketnamen als Argument für den Speicherbefehl angeben, werden Snapshots für alle vorhandenen Pakete erstellt. Um eine Liste der vorhandenen Snapshots auf dem System zu erhalten, können wir den saved
verwenden Befehl:
$ sudo snap saved Set Snap Age Version Rev Size Notes 1 gimp 20.0m 2.10.28 383 134kB auto 3 gnome-3-28-1804 10.4m 3.28.0-19-g98f9e67.98f9e67 161 124B -
In der Ausgabe des Befehls sehen wir sehr nützliche Informationen wie die Snapshot id , und sein Alter . Um einen Snapshot wiederherzustellen, verwenden wir den restore
Befehl, und wir verweisen auf den Snapshot, den wir wiederherstellen möchten, anhand seiner ID. Um den Gimp-Snapshot wiederherzustellen, den wir in der Ausgabe des vorherigen Beispiels sehen, würden wir Folgendes ausführen:
$ sudo snap restore 1 Restored snapshot #1.
Um schließlich einen vorhandenen Snapshot manuell zu entfernen, verwenden wir den forget
Befehl. Folgendes würden wir ausführen, um den Gimp-Snapshot zu entfernen:
$ sudo snap forget 1 Snapshot #1 forgotten.
Snap-Pakete entfernen
Um ein zuvor installiertes Snap-Paket zu entfernen, müssen wir intuitiv den remove
verwenden Befehl. Standardmäßig wird ein Paket mit allen installierten Revisionen entfernt. Wenn wir eine bestimmte Revision eines Pakets entfernen wollen, müssen wir sie als Argument an --revision
übergeben Möglichkeit. Wenn Sie eine Revision angeben, die entfernt werden soll, darf sie nicht die „aktive“ sein. Wenn Sie also versuchen, die Option zu verwenden, wenn es sich nur um eine Version eines Snap-Pakets handelt, schlägt der Befehl fehl. Angenommen, wir möchten beispielsweise das in diesem Tutorial installierte „gimp“-Paket entfernen, würden wir Folgendes ausführen:
$ sudo snap remove gimp
Oder, falls mehr als eine Revision vorhanden ist:
$ sudo snap remove gimp --revision 383
Snapshots des Snap-Pakets werden nicht entfernt, wenn wir das Paket entfernen (ein Snapshot wird tatsächlich erstellt, wenn das Paket entfernt wird). Um ihre Entfernung zu erzwingen, können wir --purge
übergeben Option zum remove
Befehl. Um beispielsweise „gimp“ mit allen zugehörigen Snapshots zu entfernen, würden wir Folgendes ausführen:
$ sudo snap remove --purge gimp
Schlussfolgerung
In diesem Tutorial haben wir gelernt, wie man Snap-Pakete auf Fedora verwendet. Das Ökosystem der Snap-Pakete wurde ursprünglich von Canonical für Ubuntu entwickelt, wurde dann aber auch für andere Distributionen verfügbar. Wir haben gelernt, wie man Snap-Pakete auf Fedora sucht, installiert, aktualisiert und deinstalliert und wie man Snap-Paket-Snapshots verwaltet. Obwohl Snap-Pakete auf Fedora funktionieren, ist die Standardtechnologie für eigenständige Anwendungen, die in der Distribution verwendet wird, Flatpak:Wenn Sie mehr darüber wissen und lernen möchten, wie man es benutzt, können Sie sich unser Tutorial zu diesem Thema ansehen.