Snaps
Snap ist der Name des hauseigenen Container-Formats für Anwendungen von Ubuntu. Snaps sind nahtlos in jedes Ubuntu-System integriert und werden automatisch mit Updates aus der Paketquelle Snapcraft.io versorgt. Dafür sorgt der bei Ubuntu vorkonfigurierte Dienst snapd.
Vor- und Nachteile von Container-Formaten
Snaps haben ähnliche Vorteile wie ihr Konkurrenz-Format Flatpaks:
- Sicherheit: Anwendungen werden in einer Sandbox ausgeführt. Ähnlich wie auf Smartphones muss der Zugriff auf das Dateisystem, Ortungsdienste etc. gewährt werden.
- Ausweg aus der Abhängigkeits-Hölle („Dependency hell“): Anwendungen werden mit allen benötigten Bibliotheken in den Container gepackt, so dass sie Distributions- und Versions-übergreifend funktionieren.
- Entlastung für Entwickler: Anstatt Pakete für die einzelnen Distributions-Formate (deb, rpm, apk etc.), zu bauen und zu warten, müssen Entwickler nur noch den Snap bereitstellen.
- Frische: Es gibt zwar weit mehr Deb-Pakete als Snaps, aber manche Anwendungen werden nur als Snaps angeboten oder liegen als Snap in neueren Versionen vor als ihre älteren, paketierten Pendants.
Daraus ergeben sich aber auch Nachteile:
- Größe: Snaps sind um ein vielfaches größer als klassische Deb-Pakete, weil sie alle Bibliotheken, von denen ihre Funktion abhängt, mitbringen müssen.
- Potentielle Unzuverlässigkeit: Snaps stehen nicht wie Pakete unter der Kontrolle von Maintainern, sondern werden von Entwicklern oder Dritten betreut. Deshalb ist die Wahrscheinlichkeit höher, dass ihre Pflege aufgegeben wird oder im schlimmsten Fall zur Verteilung von Schadprogrammen missbraucht werden.
Sicherheitsbedenken nach Crypto-Betrug
Im Snap-Store tauchten mehrfach betrügerische Wallet-Apps für Crypto-Währungen auf. In einem Fall wurde ein Nutzer um 490.000 Dollar erleichtert, in einem anderen kaperten die Betrüger die Domain eines ehemaligen Snap-Publishers und damit sein Konto, um ihre Masche in neuem Gewand fortzuführen. All dies hat ein ehemaliger Canonical-Angestellter dokumentiert.
Unter dem Strich ist vor der Installation von Snaps also eine ähnliche Vorsicht geboten wie bei der Nutzung von PPAs und Fremdquellen. Trotz automatisierter Kontrollen und – seit den Crypto-Betrügereien auch Prüfungen durch echte Menschen – sind nur Snaps aus vertrauenswürdiger Quelle wirklich sicher:
- „Offizielle“ Snaps: Auf der Homepage des Programmes/des Herausgebers sollte der Download-Link im Snap-Store ausgewiesen sein. Bekannte offizielle Snaps stammen vom Spotify, Micosoft (VS Code) und Google (Cloud SDK)
- Quellenangabe „Snapcrafters“: Bei Snaps mit dieser Quellen-Angabe darf man davon ausgehen, dass sie von Canonical-Mitarbeitern oder bekannten Community-Mitgliedern erstellt wurden.
- Verifizierte Quellen sind an einem grünen Badge erkennbar.
Snaps aus dem App-Zentrum installieren
Auf dem Ubuntu-Desktop werden Snaps parallel zu den klassischen Apt-Paketen im App-Zentrum, der grafischen Software-Verwaltung, angeboten. Einige Anwendungen liegen sowohl als Snaps als auch als klassische Pakete vor. In diesem Fall sollte man genau überlegen, welche Version man haben möchte. Die Suche im App-Zentrum lässt sich auch gezielt nach „Debian-Pakaten“ oder „Snaps“ filtern. Von einigem Snaps lassen sich stabile, Beta- oder Edge-Versionen installieren. Wer keine besonderen Grund hat, sollte die stabile Version den Entwicklungs-Versionen vorziehen.
Bestimmte Kern-Anwendungen wie die Browser Firefox und Chromium oder das E-Mail-Programm Thunderbird werden von Ubuntu seit einigen Jahren standardmäßig als Snaps installiert. Das geht soweit, dass selbst ein
$ apt install firefox
auf der Kommandozeile nicht etwa das Deb-Paket, sondern den Snap installiert. Hier hat man nur die Wahl, die Mozilla-eigene Paketquelle einzurichten (ja, Mozilla baut eigenen Deb-Pakete) und per Apt-Pinning die Paketverwaltung so umzubiegen, dass Firefox aus der alternativen Quelle installiert wird.
Snap-Kritik
In der bekannt streitbaren Linux-Community gibt es einige besonders laute Stimmen, die an Snaps kein gutes Haar lassen. Die Haupt-Kritikpunkte richten sich gegen den Snap-Store, der exklusiv von Canonical verwaltet wird (im Gegensatz zur möglichen dezentralen Verteilung von Flatpaks) und dessen Code nicht komplett quelloffen ist. Snaps seien, so die gängige Kritik, ohnehin nur ein weiterer Alleingang von Canonical. Während einige Argumente im Kern richtig sind, sind andere nur typisches Canonical-Bashing. Wirklich vorbei kommt man an Snaps auf einem Standard-Ubuntu-System sicher nicht.
Snaps auf der Kommandozeile verwalten
Einen Snap (de-) installieren:
$ snap install <snap-name>
$ snap remove <snap-name>
Snaps speichern zusätzlich Snapshots, bevor sie upgedatet oder deinstalliert werden. Snaphots umfassen Benutzereinstellungen und Anwendungsdaten und werden standardmäßig nach 31 Tagen gelöscht. Um einen Snapshot manuell zu löschen, geht man wie folgt vor:
$ snap saved # alle Snapshots mit ihren IDs listen
$ snap forget <id-Nummer> # einen Snapshot löschen
Beim Deinstallieren eines Snaps wird ein letzter Snapshot erstellt. Dies lässt sich mit der Option –purge verhindern:
snap remove --purge <snap-name>
