So arbeiten Sie mit Snap-Paketen unter Linux
Veröffentlicht: 2022-01-29 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.
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
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
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.
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
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.
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
Linux-Befehle | ||
Dateien | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm | |
Prozesse | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Vernetzung | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten