So arbeiten Sie mit Snap-Paketen unter Linux

Veröffentlicht: 2022-01-29
Ubuntu

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 für eine 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 installieren, nur um festzustellen, dass eine bestimmte Bibliothek oder eine andere Abhängigkeit 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 kaputt machen, wiederholen.

Dies hat sich mit besseren Paketverwaltungssystemen wie apt, dnf und pacman verbessert. 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. Snappy ist eines der beliebtesten davon. Es basiert auf einem Verpackungs- und Bereitstellungssystem namens Click, das auf die Ubuntu Touch-Initiative zurückgeht. AppImage und FlatPack sind andere, denen Sie vielleicht 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 gepackt ist oder die sie benötigt, stehen nur ihr allein zur Verfügung.

Anzeige

Sie werden nicht im herkömmlichen Sinne installiert, sodass sie keine Probleme mit anderen Anwendungen verursachen, die andere 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 ihrer eigenen Sandbox befindet.

Wenn sie jedoch nicht auf die übliche Weise installiert werden, wie werden sie gehandhabt? Nun, die einzelne Paketdatei wird heruntergeladen, dekomprimiert und als virtuelles SquashFS -Dateisystem gemountet. Es wird Ihnen dann als virtuelle Umgebung präsentiert. All dies findet hinter den Kulissen statt. Alles, was Sie wissen, ist, dass Sie eine Anwendung installiert haben und jetzt darauf zugreifen können.

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

Dies ist jedoch der Kompromiss für die Einfachheit der Installation und die Beseitigung der Kopfschmerzen durch Ressourcenkonflikte.

Snapd installieren

Snappy wurde mit Ubuntu 16.04 eingeführt. Wenn Sie also diese Version oder höher ausführen, sind Sie bereits startklar. Auf unserer Maschine 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, den Sie verwenden, um mit ihnen zu 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 

Anzeige

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. Name und Release Ihrer Linux-Distribution sowie die Kernel-Version werden Ihnen ebenfalls angezeigt.

Geben Sie Folgendes ein:

 Snap-Version 

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 den Gimp-Bildeditor zu suchen und zu installieren:

 snap find gimp 

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

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

 sudo snap install gimp 

Anzeige

Während des Herunterladens steigt der Prozentsatz der Fertigstellung und ein Fortschrittsbalken schleicht sich von der linken Seite des Terminalfensters herüber. Wenn die Installation abgeschlossen ist, wird eine Meldung angezeigt (wie unten gezeigt), die Ihnen mitteilt, dass das Paket installiert wurde.

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

Wir geben Folgendes ein:

 df | grep gimp 

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

VERWANDT: So verwenden Sie den grep-Befehl unter Linux

Das Dateisystem wird wie folgt aufgelistet: /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.

Wir können das mit dem df Befehl 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 

Die gemounteten SquashFS -Dateisysteme werden aufgelistet. Eine /dev/loop -Gerätedatei behandelt jeden, und es gibt 18 davon.

Anzeige

Jedes Dateisystem wird in einem Verzeichnis innerhalb des /snap -Verzeichnisses 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 direkt aus der Box installiert, und wir haben gerade ein weiteres installiert.

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

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

 Schnappliste 

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

Hier ist die gesamte Auflistung:

 Name Version Rev Tracking Anmerkungen des Herausgebers
Kern 16-2.43.3 8689 stabiler kanonischer* Kern
core18 20200124 1668 stabile kanonische* Basis
gimp 2.10.18 252 stabile Snapcrafter -
gnome-3-26-1604 3.26.0.20191114 98 stabil/... kanonisch* -
gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 stabil kanonisch* -
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/... kanonisch* -
gnome-system-monitor 3.32.1-3-g0ea89b4922 127 stabil/... kanonisch* -
gtk-common-themes 0.1-28-g1503258 1440 stable/... kanonisch* -

Wie Sie sehen können, 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 ist eine Klarstellung:

  • 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.
    • Candidate: Dieser Kanal ist weniger stabil, kommt ihm aber sehr nahe, da er Software auf Release Candidate-Level enthält, die Code-vollständig ist. Es durchläuft abschließende Tests, bevor es in den stabilen Kanal verschoben wird.
    • Beta: Dieser Kanal hat die Qualität eines späten Entwicklungszyklus, aber es ist nicht garantiert, 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 seien Drachen!
  • 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 Unicode unterstützt), sehen Sie ein grünes Häkchen neben dem Namen des Herausgebers. Wenn kein Häkchen angezeigt werden kann, sehen Sie ein Sternchen ( * ).
  • Hinweise : Alle Kommentare oder zusätzliche Informationen werden hier angezeigt.

Die Schnappkanäle

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

Dazu geben wir Folgendes ein:

 snap info gtk-gemeinsame-themen 

Anzeige

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 täglich, ob eine neuere Version der Software auf dem Kanal verfügbar ist, den es gerade ansieht oder „verfolgt“. Wenn Sie den Kanal ändern möchten, den ein snap -Paket verfolgt, können Sie die Optionen refresh und --channel .

Dazu geben wir Folgendes ein:

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

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

Sie können die Option --list verwenden, um zu prüfen, ob Updates für eines der auf Ihrem Computer installierten snap -Pakete verfügbar sind.

Dazu geben wir Folgendes ein:

 sudo snap refresh --list 

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

Anzeige

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

 sudo snap refresh gtk-common-themes 

Entfernen eines Snap-Pakets

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

 sudo snap gimp entfernen 

Das Snap-Spickzettel

Die Verwendung von Snap-Paketen ist ziemlich einfach, aber wir haben eine Liste mit einigen Befehlen zusammengestellt, die Ihnen helfen werden:

  • Um nach einem Paket zu suchen: snap find package_name
  • So installieren Sie ein Paket: sudo snap install package_name
  • Um alle installierten Pakete zu sehen: snap list
  • Um Informationen über ein einzelnes Paket zu erhalten: snap info package_name
  • So ändern Sie den Kanal, 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
  • Um ein Paket manuell zu aktualisieren: sudo snap refresh package_name
  • So deinstallieren Sie ein Paket: sudo snap remove package_name

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten