Was Sie über Snaps unter Ubuntu 20.04 wissen müssen

Die Umstellung auf Snap-Pakete in Ubuntu 20.04: Was Sie wissen sollten

Ubuntu 20.04 Focal Fossa hat sich als herausragende Version etabliert und erfreut sich großer Beliebtheit. Die Entscheidung, das Software Center auf die Installation von Anwendungen mittels Snap-Technologie umzustellen, hat jedoch Kontroversen ausgelöst. Hier erklären wir Ihnen, was diese Veränderung für Sie als Benutzer bedeutet.

Was ist ein Snap-Paket unter Linux?

Der Begriff „Snap“ bezieht sich sowohl auf den Befehl „snap“ als auch auf die eigentliche Snap-Installationsdatei. Ein Snap ist im Grunde ein Paket, das eine Anwendung zusammen mit allen ihren Abhängigkeiten in einer einzigen komprimierten Datei bündelt. Zu diesen Abhängigkeiten gehören Bibliotheken, Webserver, Datenbankserver und andere notwendige Elemente, die eine Anwendung zum korrekten Starten und Ausführen benötigt.

Der Vorteil von Snaps liegt in ihrer Fähigkeit, die Installation zu vereinfachen, da sie das Problem der Abhängigkeitshölle umgehen. Diese tritt auf, wenn eine Anwendung nicht gestartet werden kann, weil erforderliche Ressourcen fehlen, in der falschen Version vorliegen oder durch die Installation einer neuen Applikation überschrieben wurden.

Man könnte annehmen, dass ein Snap beim Installationsprozess dekomprimiert und die Dateien extrahiert werden. Tatsächlich wird die Snap-Datei jedoch zur Laufzeit in ein Loop-Device gemountet. Dies ermöglicht den Zugriff auf das interne SquashFS-Dateisystem der Datei.

Die Anwendung wird in einer gekapselten und abgeschirmten Umgebung ausgeführt. Dadurch können ihre Dateien andere Systemdateien nicht beeinträchtigen. Es ist sogar möglich, mehrere Versionen derselben Anwendung zu installieren, ohne dass diese sich gegenseitig stören.

Ein Nachteil ist, dass die Installationsdateien im Vergleich zu traditionellen Debian-Paketmanager (DEB)-Dateien größer sind und mehr Speicherplatz beanspruchen. Durch die Verwendung von Snaps installiert jede Anwendung ihre eigene Kopie benötigter Ressourcen, was nicht immer die effizienteste Nutzung des Festplattenspeichers ist. Obwohl Festplattenkapazitäten kontinuierlich wachsen, stehen Traditionalisten dieser Art der Ressourcenverschwendung kritisch gegenüber, bei der jede Anwendung in einem eigenen kleinen Container läuft. Auch der Start von Anwendungen kann dadurch etwas länger dauern.

Snaps wurden auch dafür kritisiert, dass sie nicht immer dem Design des Desktops und der automatischen Aktualisierung folgen. Manche Benutzer bevorzugen auch traditionelle Methoden, da Snaps nicht immer von den ursprünglichen Softwareentwicklern erstellt werden und daher nicht als hundertprozentig „offiziell“ angesehen werden.

Mit der Einführung von Focal Fossa hat Canonical die Ubuntu-Softwareanwendung durch eine Version ersetzt, die standardmäßig Snaps verwendet. Doch was bedeutet das nun konkret für Sie?

Das Ubuntu Software Center

Um die auf Ihrem Rechner gemounteten SquashFS-Dateisysteme aufzulisten, können wir den Befehl „df“ nutzen. Mit der Option „-t“ (Typ) beschränken wir die Ausgabe auf die Dateisysteme, die uns interessieren:

df -t squashfs

Um die installierten Snaps aufzulisten, verwenden wir den Befehl „snap list“:

snap list

Wir sehen einige Snaps für den GNOME-Desktop, zwei für die Kernfunktionalität von Snap, einen für GTK-Themen und einen für den Snap-Store. Interessanterweise ist auch der Snap-Store selbst ein Snap.

Der Clou ist: Wenn Sie den Befehl „snap-store“ im Terminal eingeben, wird die Anwendung „Ubuntu Software“ gestartet.

Normalerweise starten Sie die Ubuntu Software-Anwendung, indem Sie auf das entsprechende Symbol klicken. Wir starten sie über die Befehlszeile, um zu demonstrieren, dass sie im Grunde die Snap-Store-Anwendung ist:

snap-store

Die Ubuntu Software-Anwendung sieht wie gewohnt aus und bietet die gleiche Suchfunktion. Suchen und installieren wir beispielsweise die Anwendung „sqlitebrowser“. Die Detailseite zeigt die Informationen und einen Screenshot der Anwendung an. Klicken Sie auf „Installieren“, um die Software zu installieren.

Ohne es zu wissen, würden Sie die Veränderungen unter der Haube vermutlich nicht bemerken. Scrollen Sie jedoch nach unten, so werden Ihnen einige neue, Snap-spezifische Informationen auffallen.

Die „Details“ enthalten folgende Informationen:

  • Kanal: Der Kanal, aus dem die Anwendung stammt.
  • Version: Die Versionsnummer der Software.
  • Lizenz: Der Lizenztyp.
  • Entwickler: Die Person oder die Gruppe, die den Snap erstellt hat.
  • Quelle: Die Quelle, von der der Snap heruntergeladen wird (snapcraft.io ist der offizielle Snap-Store von Canonical).
  • Downloadgröße: Die Größe der Snap-Datei.

Der Kanal kann einer der folgenden sein:

  • Stable: Der Standardwert, der die stabilsten Pakete beinhaltet.
  • Candidate: Dieser Kanal ist weniger stabil, enthält aber Software auf Release-Kandidaten-Ebene.
  • Beta: Hier sind Versionen aus der späteren Entwicklungsphase enthalten. Es kann aber keine Stabilität garantiert werden.
  • Edge: Für Tester und sehr neugierige Benutzer. Dieser Kanal sollte nicht für Produktivumgebungen verwendet werden.

Nach der Installation können wir die Liste der installierten Snaps erneut aufrufen:

snap list

Der neue Eintrag wird am Ende der Liste angezeigt. Nun starten wir die Anwendung:

sqlitebrowser

Die Anwendung funktioniert einwandfrei, auch wenn die Benutzeroberfläche etwas altmodisch wirkt. Die Pseudo-3D-Elemente erinnern an die GUIs von früher. Dieses Aussehen ist nicht bei allen Snaps üblich, in diesem Beispiel jedoch deutlich sichtbar.

Installation über die Befehlszeile

Bei der Installation von Anwendungen über die Befehlszeile hat sich nichts Wesentliches geändert. Sie können weiterhin den Befehl „snap“ im Terminal verwenden, um Snaps zu installieren und zu deinstallieren. Auch die Befehle „apt-get“ und „apt“, ein Wrapper für apt-get, stehen Ihnen weiterhin zur Verfügung.

Installieren wir nun dieselbe Anwendung über die Befehlszeile. Da die bereits installierte Version ein Snap ist, werden sich beide Versionen nicht gegenseitig beeinflussen:

sudo apt-get install sqlitebrowser

Lassen Sie die Installation abschließen. Drücken Sie die Super-Taste und geben Sie „sqlitebrowser“ ein. Nach einigen Zeichen werden Ihnen zwei Versionen des Programms angezeigt.

Starten Sie beide Versionen.

Wie Sie sehen können, haben wir zwei verschiedene Versionen installiert und beide laufen gleichzeitig.

Die Version im Hintergrund wurde über die Befehlszeile installiert, während die Version im Vordergrund der Snap ist:

Die mit apt-get installierte Version ist 3.11.2.

Die Snap-Version ist 3.11.99.

Trotz des Anscheins ist die Version, die über die Befehlszeile installiert wurde, die ältere. Beide Versionen existieren nebeneinander und arbeiten ohne Probleme. Snaps tun also, was sie sollen, indem sie verschiedene Versionen derselben Anwendung voneinander isolieren.

Auch die Installation von Anwendungen mit apt oder apt-get funktioniert weiterhin wie gewohnt und wird von Snaps nicht beeinflusst.

Welche Version sollten Sie verwenden?

Ist es Ihnen egal, welche Art von Anwendung Sie nutzen? Wenn dies der Fall ist, können Sie problemlos Snaps verwenden.

Wenn jedoch einer der folgenden Punkte für Sie ein Ausschlusskriterium ist, sollten Sie die Ubuntu Software-Anwendung meiden und Ihre Anwendungen auf traditionelle Weise installieren:

  • Snaps laden langsamer, was sich vor allem bei älterer Hardware bemerkbar macht.
  • Snaps belegen mehr Speicherplatz.
  • Snaps werden automatisch aktualisiert.
  • Snaps passen möglicherweise nicht zu Ihren installierten Designs.
  • Snaps sind nicht immer „offiziell“ und werden oft von Community-Mitgliedern erstellt.

Wenn Ihr Computer relativ modern ist, ist der Geschwindigkeitsunterschied beim Starten eines Snaps im Vergleich zu einer regulären Anwendung nicht sehr groß. Der größte Zeitverlust tritt beim Herunterladen der Snap-Dateien auf, da dies etwas länger dauern kann. Die Installation selbst geht jedoch schnell. Da das Herunterladen nur einmal erforderlich ist, ist es kein tägliches Problem.

Selbst wenn Sie von den Vorteilen von Snaps überzeugt sind, ist es nicht möglich, vollständig auf diese umzustellen. Einige Anwendungen sind nicht als Snap verfügbar. In solchen Fällen müssen Sie die Installation weiterhin über die Befehlszeile vornehmen.

Canonical setzt mit dieser Strategie klar ein Zeichen. Die Entwickler von Ubuntu betrachten Snaps als eine Zukunftstechnologie. Sie haben die Wahl, ob Sie Snaps nutzen, ignorieren oder ein Hybridsystem verwenden, das Snaps und traditionelle DEB-basierte Installationen kombiniert.