So arbeiten Sie mit Snap-Paketen unter Linux

Wenn Sie Linux-Softwarepakete mit Snap installieren, können Sie sich von der Abhängigkeitshölle und dem Unterbrechen anderer funktionierender Anwendungen verabschieden. Snap-Pakete wurden ursprünglich für Ubuntu entwickelt, sind aber jetzt auf einer Vielzahl von Linux-Distributionen verfügbar.

Was sind Snap-Pakete?

In der Vergangenheit war die Installation von Anwendungen unter Linux eine potenziell frustrierende Erfahrung. Sie würden etwas nur installieren, um eine bestimmte Bibliothek oder eine andere Abhängigkeit zu finden, die fehlt oder veraltet ist. Sie würden dann die fehlende Ressource suchen und installieren, nur um eine andere Anwendung zu finden, die von der Version der Bibliothek abhängt, die Sie gerade ersetzt haben. Eins reparieren, eins brechen, wiederholen.

Dies hat sich durch bessere Paketverwaltungssysteme verbessert, wie z geeignet, dnf, und pacman. Sie haben jedoch immer noch Probleme, wenn Sie verschiedene Versionen derselben Anwendung installieren müssen. Oder wenn Sie zwei Anwendungen verwenden, die kollidieren, weil sie an bestimmte – aber unterschiedliche – Versionen einer Bibliothek gebunden sind.

Eine Lösung für diese Probleme sind Anwendungspaketierungs- und Bereitstellungssysteme. Bissig ist einer der beliebtesten von diesen. Es basiert auf einem Paketierungs- und Bereitstellungssystem namens Click, das auf die Ubuntu-Touch Initiative. AppImage und Flachgehäuse sind andere, denen Sie möglicherweise begegnet sind.

Diese Systeme kapseln die Anwendung zusammen mit allen Abhängigkeiten und anderen Anforderungen in einer einzigen komprimierten Datei. Die Anwendung läuft dann in einer Art Mini-Container. Es ist in einer Sandbox untergebracht und von anderen Anwendungen getrennt. Die Bibliotheken und anderen Ressourcen, mit denen die Anwendung paketiert ist oder benötigt, stehen nur ihr allein zur Verfügung.

Sie werden nicht im herkömmlichen Sinne installiert, sodass sie keine Probleme mit anderen Anwendungen verursachen, die unterschiedliche Versionen derselben Ressourcen benötigen. Sie können sogar Anwendungen installieren und ausführen, die widersprüchliche Bibliotheksversionen benötigen, da sich jede Anwendung in einer eigenen Sandbox befindet.

Wenn sie jedoch nicht wie üblich installiert sind, wie werden sie dann behandelt? Nun, die einzelne Paketdatei wird heruntergeladen, dekomprimiert und als SquashFS gemountetvirtuelles Dateisystem. Es wird Ihnen dann als virtuelle Umgebung präsentiert. All dies findet hinter den Kulissen statt. Sie wissen lediglich, dass Sie eine Anwendung installiert haben und nun darauf zugreifen können.

Da jede Paketdatei alle Ressourcen enthalten muss, die die Anwendung benötigt, können die Paketdateien natürlich groß sein. Es ist auch einfach, eine Ressource zu duplizieren, die Sie normalerweise nur einmal installieren würden, wie z MySQL oder Apache. Wenn zwei verschiedene Snap-Anwendungen dieselben Ressourcen benötigen, bringen sie jeweils ihre eigene Kopie mit.

  So verwenden Sie den Linux-Befehl

Dies ist jedoch der Kompromiss zwischen der Einfachheit der Installation und der Beseitigung der Kopfschmerzen durch Ressourcenkonflikte.

Installieren von snapd

Snappy wurde mit Ubuntu 16.04 eingeführt. Wenn Sie also diese Version oder höher verwenden, können Sie bereits loslegen. Auf unserem Rechner war Snappy auf Manjaro 18.04 installiert, aber wir mussten es auf Fedora 31 installieren.

snap ist sowohl der Name der Paketdateien als auch der Befehl, mit dem Sie mit ihnen interagieren. Hinter den Kulissen ist der Snapd-Daemon auch der Name des Pakets, das Sie installieren müssen, wenn Sie Snappy noch nicht auf Ihrem Computer haben.

Um snapd auf Fedora zu installieren, geben Sie den folgenden Befehl ein:

sudo dnf install snapd

Der

Wenn Sie es auf Manjaro installieren müssen, verwenden Sie diese Befehle:

sudo pacman -Sy snapd
sudo systemctl enable --now snapd.socket

Sie können den Befehl snap version verwenden, um die Version des Snap-Clients, des Snapd-Daemons und die Seriennummer der Software anzuzeigen. Der Name und das Release Ihrer Linux-Distribution und die Kernel-Version werden Ihnen ebenfalls angezeigt.

Geben Sie Folgendes ein:

snap version

Der

Installieren von Snap-Paketen

Es ist ein ziemlich einfacher Prozess, ein Snap-Paket zu installieren. Sie können Snap verwenden, um nach Snap-Paketen zu suchen und dann das gewünschte zu installieren.

Wir geben Folgendes ein, um zu suchen und zu installieren der Gimp-Bildeditor:

snap find gimp

Der

snap sucht nach Übereinstimmungen mit dem Suchhinweis „gimp“ und gibt seine Ergebnisse zurück. Es wird alles finden, was mit dem Suchbegriff übereinstimmt oder diesen erwähnt.

Um eines der Pakete zu installieren, verwenden wir den Wert aus der Spalte Name, wie unten gezeigt:

sudo snap install gimp

Der

Während des Downloads steigt der Prozentsatz der abgeschlossenen Arbeiten und ein Fortschrittsbalken schleicht sich links über das Terminalfenster. Wenn die Installation abgeschlossen ist, wird eine Meldung (wie unten gezeigt) angezeigt, die Ihnen mitteilt, dass das Paket installiert wurde.

EIN

Sie können den df-Befehl verwenden, um Überprüfen Sie die Kapazität und Nutzung der verschiedenen Dateisysteme, die auf Ihrem Linux-Computer konfiguriert sind. Wenn wir seine Ausgabe in den grep-Befehl leiten und nach „gimp“ suchen, den Eintrag für das Paket isolieren wir haben gerade installiert.

Wir geben folgendes ein:

df | grep gimp

Der

Dies zeigt uns, dass das Snap-Paket gemountet wurde, als ob es ein Dateisystem wäre. Der Einhängepunkt befindet sich hier im Snap-Verzeichnis: /snap/gimp/252. „252“ ist die Release-Nummer dieser Version von gimp.

  So finden Sie Festplatteninformationen unter Linux

Das Dateisystem ist aufgelistet als: /dev/loop18. Loop-Gerätedateien werden verwendet, um reguläre Dateien als Blockgeräte zugänglich zu machen. Sie werden normalerweise zum Mounten der Dateisysteme in Disk-Images verwendet. In diesem Fall mounten sie das SquashFS-Dateisystem innerhalb des Snap-Pakets. Die „18“ bedeutet, dass dies die 18. /dev/loop-Gerätedatei ist, die auf diesem Linux-Computer verwendet wird.

Mit dem Befehl df können wir dies schnell überprüfen. Wir verwenden die Option – t (Typ), um die Ausgabe nur auf SquashFS-Dateitypen zu beschränken.

Wir geben folgendes ein:

df -t squashfs

Der

Die gemounteten SquashFS-Dateisysteme werden aufgelistet. Jede wird von einer /dev/loop-Gerätedatei verwaltet, und es gibt 18 davon.

Jedes Dateisystem wird in ein Verzeichnis innerhalb des Verzeichnisses /snap eingehängt. Dies bedeutet jedoch nicht, dass auf diesem Computer 18 verschiedene Snap-Pakete installiert sind. Dies ist eine Ubuntu-Distribution, daher sind einige Snap-Pakete sofort installiert, und wir haben gerade ein weiteres installiert.

Wenn Sie snapd installieren, werden außerdem einige Kern-Snap-Pakete installiert, um die Anforderungen anderer Snap-Pakete zu erfüllen.

Wir können den Befehl snap list, wie unten gezeigt, verwenden, um die installierten Snap-Pakete aufzulisten:

snap list

Die Ausgabe war etwas breit, daher wird das Ende der Auflistungen unten angezeigt.

Hier ist die gesamte Auflistung:

Name                 Version                    Rev   Tracking  Publisher    Notes
core                 16-2.43.3                  8689  stable    canonical*   core
core18               20200124                   1668  stable    canonical*   base
gimp                 2.10.18                    252   stable    snapcrafters -
gnome-3-26-1604      3.26.0.20191114            98    stable/…  canonical*   -
gnome-3-28-1804      3.28.0-16-g27c9498.27c9498 116   stable    canonical*   -
gnome-calculator     3.34.1+git1.d34dc842       544   stable/…  canonical*   -
gnome-characters     v3.32.1+git3.b9120df       399   stable/…  canonical*   -
gnome-logs           3.34.0                     81    stable/…  canonical*   -
gnome-system-monitor 3.32.1-3-g0ea89b4922       127   stable/…  canonical*   -
gtk-common-themes    0.1-28-g1503258            1440  stable/…  canonical*   -

Wie Sie sehen, sind 10 Snap-Pakete installiert, nicht 18. Diese 10 Pakete haben jedoch zu den 18 SquashFS-Dateisystemen geführt. Die Tabellenspalten sind ziemlich selbsterklärend, aber hier einige Erläuterungen:

Name: Der Name des installierten Snap-Pakets.
Version: Die Versionsnummer der Software im Snap-Paket.
Rev: Die Revisionsnummer des Snap-Pakets.
Tracking: Der Kanal, den dieses Snap-Paket auf Updates überwacht. Es gibt vier:
Stabil: Der Standardkanal. Wie der Name schon sagt, enthält dieser Kanal die stabilsten Pakete.
Kandidat: Dieser Kanal ist weniger stabil, aber sehr nah dran, da er Software auf Release-Kandidaten-Ebene enthält, die Code-vollständig ist. Es durchläuft letzte Tests, bevor es in den stabilen Kanal verschoben wird.
Beta: Dieser Kanal hat die Qualität eines späten Entwicklungszyklus, aber es kann nicht garantiert werden, dass er stabil ist.
Edge: Für frühe Build-Tester. Sie sollten diesen Kanal nicht für wichtige Arbeiten oder auf einem Produktionscomputer verwenden. Hier sind Drachen!

  So hosten Sie einen Minecraft-Server unter Linux

Herausgeber: Die Person, das Unternehmen oder die Organisation, die das Snap-Paket veröffentlicht hat. Wenn es sich um einen verifizierten Herausgeber handelt (und Ihr Terminalfenster unterstützt Unicode) wird neben dem Namen des Herausgebers ein grünes Häkchen angezeigt. Wenn kein Häkchen angezeigt werden kann, sehen Sie ein Sternchen
.

Hinweise: Alle Kommentare oder zusätzliche Informationen werden hier angezeigt.

Die Snap-Kanäle

Sie können die Info-Option verwenden, um eine Beschreibung eines Snap-Pakets zu erhalten.

snap info gtk-common-themes

Dazu geben wir Folgendes ein:

Der

Wir können sehen, welchen Kanal das Paket verfolgt, und die Version der Software in den Snap-Paketen in jedem der vier Kanäle. In den meisten Fällen sollten Sie auf dem stabilen Kanal bleiben.

Ein Snap-Paket prüft viermal am Tag, ob eine neuere Version der Software auf dem Kanal verfügbar ist, den es sich ansieht oder „verfolgt“. Wenn Sie den Kanal eines Snap-Pakets ändern möchten, können Sie die Optionen Refresh und –channel verwenden.

sudo snap refresh gtk-common-themes --channel=beta

Dazu geben wir Folgendes ein:

Der

Wenn eine neuere Version der Software verfügbar war, wurde diese installiert, aber das war hier nicht der Fall. Allerdings verfolgt das Snap-Paket jetzt den Beta-Kanal. Sobald eine neue Beta-Version veröffentlicht wird, wird sie automatisch heruntergeladen und aktualisiert.

Mit der Option –list können Sie überprüfen, ob Updates für eines der auf Ihrem Computer installierten Snap-Pakete verfügbar sind.

sudo snap refresh --list

Dazu geben wir Folgendes ein:

Der

Sie werden informiert, wenn einer der Kanäle, die die Snap-Pakete auf Ihrem Computer verfolgen, neuere Softwareversionen enthält.

sudo snap refresh gtk-common-themes

Wenn eine neuere Version der Software verfügbar ist, können Sie die Aktualisierungsoption wie unten gezeigt verwenden, um eine Aktualisierung manuell zu erzwingen:

Der

Entfernen eines Snap-Pakets

sudo snap remove gimp

Um ein Snap-Paket zu deinstallieren, können Sie die Option zum Entfernen verwenden, wie unten gezeigt:

Der

Der Snap-Spickzettel

Die Verwendung von Snap-Paketen ist ziemlich einfach, aber wir haben eine Liste mit einigen Befehlen zusammengestellt, die Ihnen helfen:
Um nach einem Paket zu suchen: snap find package_name
So installieren Sie ein Paket: sudo snap install package_name
Um alle installierten Pakete anzuzeigen: Snap-Liste
Um Informationen über ein einzelnes Paket zu erhalten: snap info package_name
Um den Kanal zu ändern, den ein Paket für Updates verfolgt: sudo snap refresh package_name –channel=channel_name
Um zu sehen, ob Updates für installierte Pakete bereit sind: sudo snap refresh –list
So aktualisieren Sie ein Paket manuell: sudo snap refresh package_name

So deinstallieren Sie ein Paket: sudo snap remove package_name