Snap Pakete und Store aus Ubuntu entfernen
In diesem Artikel geht es um Snap Pakete, den Ubuntu Snap Store und wie wir diesen bei Bedarf von unserem System entfernen können. Die Einführung von Canonicals Snap Store und die zunehmende Integration von Snap-Paketen in Ubuntu lösst in der Community schon längere heftige Debatten aus, insbesondere im Hinblick auf die Zentralisierung in einem traditionell dezentralen Ökosystem wie Linux. Wir schauen uns kurz im groben an, um was es genau geht, was Snaps eigentlich sind, und wo das Problem aus meiner Sicht eigentlich hauptsächlich liegt.
Was sind Snaps oder Snap Pakete
Snaps sind Paketformate für Linux, die darauf abzielen, die Installation und Verwaltung von Software zu vereinfachen. Hier eine kurze Übersicht über ihre Funktionsweise sowie Vor- und Nachteile:
Funktionsweise
- Snaps sind containerisierte Softwarepakete, die alle Abhängigkeiten enthalten, die für das Ausführen der Software erforderlich sind.
- Sie sind unabhängig von der Distribution und bieten eine konsistente Umgebung über verschiedene Linux-Versionen hinweg.
- Snaps werden zentral über den Snap Store von Canonical verwaltet und können automatisch aktualisiert werden.
Vorteile
- Verteilungsübergreifende Kompatibilität: Funktionieren auf jeder Linux-Distribution, die Snap unterstützt.
- Sicherheit: Sind in sich abgeschlossen und beeinflussen das restliche System weniger.
- Einfache Installation und Updates: Automatisierte Updates und einfache Installationsprozesse.
- Isolation: Reduzieren das Risiko von Konflikten zwischen verschiedenen Softwarepaketen.
Nachteile
- Größe: Tendieren dazu, größer zu sein als traditionelle Pakete, da sie alle Abhängigkeiten enthalten.
- Performance: Können langsamer starten als native Pakete.
- Zentralisierung: Werden hauptsächlich über den proprietären Snap Store von Canonical verteilt.
- Kompatibilitätsprobleme: Nicht jede Software ist als Snap verfügbar oder funktioniert optimal in einem Snap-Container.
Snaps bieten also eigentlich eine moderne, sicherheitsorientierte und distributionsübergreifende Methode zur Softwareverteilung in Linux, haben aber auch Einschränkungen, insbesondere im Hinblick auf Größe, Performance und Zentralisierung.
Welche Diskussionen entstehen um Snap
Der Snap-Paketformat von Canonical, ursprünglich für Cloud-Anwendungen und das Internet der Dinge (IoT) entworfen, stößt in der Linux-Community auf Widerstand. Dieser Widerstand geht über die grundlegende Kritik an neuen Paketsystemen hinaus und betrifft insbesondere die zunehmende Integration von Snap in Ubuntu und die proprietäre Backend-Infrastruktur des Snap Store.
Skepsis gegenüber Canonicals Alleingängen: In der Vergangenheit hat die Linux-Community einige Solo-Projekte von Canonical skeptisch aufgenommen. Beispielsweise wurde das Snap-Daemon (snapd
) als das definierte Werkzeug zum Abrufen von Snaps von Canonicals Servern kritisiert, und es gibt funktionale Nachteile bei Snaps, die das Unternehmen langsam angeht. Dies führte dazu, dass einige Distributionen, darunter Linux Mint und Tuxedo, Snaps ablehnten oder sogar blockierten.
Ersatz traditioneller Paketformate durch Snaps: Einige Nutzer und Entwickler sind besorgt über Canonicals Ansatz, traditionelle Paketquellen in Ubuntu durch Snaps zu ersetzen. Dies wird als Schritt in Richtung einer stärkeren Zentralisierung angesehen, der im Widerspruch zu den dezentralen Prinzipien steht, die viele in der Linux-Community schätzen. Diese Besorgnis hat zur Entwicklung von Tools wie unsnap
geführt, einem Skript, das Snaps durch Flatpaks ersetzt, wo immer dies möglich ist.
Entwicklung einer All-Snap-Version von Ubuntu: Canonical plant, neben der Standardversion des Betriebssystems eine All-Snap-Version von Ubuntu herauszubringen. Diese Version wird vollständig aus Snap-Paketen bestehen, allerdings wird sie nicht die Standardversion sein. Die All-Snap-Version soll als optionale, unveränderliche (immutable) Version angeboten werden, die das Betriebssystem als schreibgeschützt montiert und dadurch möglicherweise sicherer macht. Diese Entwicklung zeigt die Ambitionen von Canonical, Snap weiterhin stark zu fördern.
Das Problem eines proprietären Store Back-Ends
Die Kritik am proprietären Backend des Snap Stores von Canonical und den Aufnahmekriterien für Apps wirft größere Fragen auf bezüglich Zentralisierung und Kontrolle in der Software-Verteilung. Diese Kritikpunkte können aus einer folgenden freiheitlichen Perspektive betrachtet werden:
- Proprietäres Backend: Das proprietäre Backend des Snap Stores steht im Gegensatz zu den Prinzipien von Offenheit und Transparenz, die viele in der Linux-Community schätzen. Dies führt zu Bedenken hinsichtlich der Kontrolle, die Canonical über die Software-Verteilung hat.
- Auswahlkriterien für Apps: Die Entscheidungen darüber, welche Apps im Snap Store aufgenommen werden, könnten als undurchsichtig oder inkonsistent wahrgenommen werden. Dies könnte den Anschein erwecken, dass Canonical eine zu starke Kontrolle über die verfügbare Software ausübt, ähnlich wie bei zentralisierten App-Stores wie dem von Apple, Microsoft oder Google.
- Vergleich mit Apple's App Store: Während Apple für seinen zentralisierten und streng kontrollierten Ansatz bekannt ist, erwarten Linux-Benutzer traditionell mehr Freiheit und Offenheit bei der Software-Installation und -Verwaltung. Canonicals Snap Store bewegt sich in eine Richtung, die stärker an zentralisierte Modelle erinnern, was in der Linux-Community als Abkehr von den dezentralisierten und offenen Prinzipien gesehen werden kann.
- Freiheitliche Perspektiven: Aus einer freiheitlichen Sichtweise ist die Zentralisierung der Software-Verteilung durch einen einzigen Anbieter problematisch. Sie schränkt die Benutzerfreiheit ein, indem sie die Auswahl an verfügbarer Software und die Kontrolle über die Installations- und Update-Prozesse limitiert. Dies steht im Widerspruch zum Geist der Linux-Community, die sich durch Vielfalt, Unabhängigkeit und Benutzerkontrolle auszeichnet.
Problematisch wird das ganze, wenn Canonical dann irgendwann nur noch Snap Pakete anbietet und keine anderen Quellen mehr mit einbezieht, wie es teilweise heute schon der Fall in Ubuntus Software Center ist. Auf aktuellen 22iger Distros werden einem praktisch im Software Center nur noch Snaps angeboten. Möchte man einen App wie den Chromium Browser installieren, funktioniert das mitlerweile nicht mer weil nur noch Snap Quellen hinterlegt sind:
Auf früheren Ubuntu Distros unter 20.04 wurde bei der Verwendung von apt install
reguläre Paketquellen bezogen und mit dem Befehl snap install
Snap Pakete. Mitlerweile werden für apt Befehle gleich direkt nur noch Snap Quellen bezogen. Für mich auch ein Grund bald die Distro zu wechseln!
Snap Store vom System entfernen
Wer das ganze nicht unterstützen möchte, hat die relativ einfache Möglichkeit Snap komplett vom System zu entfernen. Problem dabei, viele Programme lassen sich danach nicht mehr via apt
installieren.
Es ist technisch möglich, Debian-Repositories zu einem Ubuntu-System hinzuzufügen, aber es wird normalerweise nicht empfohlen. Ubuntu und Debian verwenden zwar ähnliche Paketverwaltungssysteme, aber sie sind nicht identisch. Das Hinzufügen von Debian-Repositories zu einem Ubuntu-System kann zu Konflikten und Abhängigkeitsproblemen führen, insbesondere wenn Pakete aus beiden Quellen installiert werden.
Deinstallation von Snap
Führt zuerst mal auf der Konsole den Befehl snap list
aus. Ziel ist es zuerst alle Snap Apps zu entfernen bevor der Snap deinstalliert werden kann. Die Liste sieht normalerweise so aus bei einem relativ frischem System:
$ snap list
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core20 20230126 1822 latest/stable canonical✓ base
firefox 110.0-3 2356 latest/stable/… mozilla✓ -
gnome-3-38-2004 0+git.6f39565 119 latest/stable/… canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
snap-store 41.3-66-gfe1e325 638 latest/stable/… canonical✓ -
snapd 2.58.2 18357 latest/stable canonical✓ snapd
snapd-desktop-integration 0.1 49 latest/stable/… canonical✓
Die Pakete müsst Ihr jetzt der Reihe nach entfernen:
snap remove firefox
snap remove gtk-common-themes
snap remove gnome-3-38-2004
snap remove snapd-desktop-integration
snap remove snap-store
snap remove core20
snap remove bare
snap remove snapd
Achtet auf die korrekte Reihenfolge. Falls sich eine App nicht deinstallieren lässt, wird Euch Snap sagen welches Paket vorher deinstalliert werden muss.
Danach können wir uns an die Deinstallation von Snap machen:
$ sudo systemctl stop snapd
$ sudo systemctl disable snapd
$ sudo systemctl mask snapd
$ sudo apt purge snapd -y
Nun habt Ihr Snap bereits erfolgreich vom System heruntergeworfen. Jedoch müssen wir noch ein paar Schritte erledigen und etwas aufräumen. Damit sich Snap nicht wieder bei einem apt update && apt upgrade
installiert, müssen wir eine Konfigurationsdatei erstellen, Erstellt eine neue pref Datei mit:
sudo nano /etc/apt/preferences.d/nosnap.pref
und fügt folgenden Inhalt hinzu:
Package: snapd
Pin: release a=*
Pin-Priority: -10
Speichert die Datei mit strg+o und beendet mit strg+x
Snap Ordner entfernen
Wir entfernen nun noch Überbleibsel von Snap:
rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
Wie installiere ich jetzt Programme
Programme könnt Ihr weiterhin normal über das Software-Center installieren. Es werden einfach keine Snap Pakete mehr angezeigt. Falls es für ein bestimmtes Programm kein Angebot gibt, oder auch apt install
kein Erfolg bringt, versucht folgendes:
- Prüft, ob es ein offizielles PPA gibt: Viele Programme bieten Personal Package Archives (PPAs), die speziell für Ubuntu-Nutzer erstellt wurden.
- Sucht nach einem herunterladbaren
.deb
-Paket: Einige Softwareentwickler bieten.deb
-Pakete auf ihren Websites an, die Ihr manuell herunterladen und installieren könnt. - Kompiliert aus dem Quellcode: Für Open-Source-Software könnt Ihr theoretisch auch den Quellcode herunterladen und das Programm selbst kompilieren.
- Nutzt alternative Paketmanager: Werkzeuge wie Flatpak oder AppImage bieten auch eine breite Palette von Anwendungen an und können als Alternative zu den Ubuntu-Repositories oder Snap-Paketen dienen.
Und Nummer 5: verabschiedet Euch längerfristig von Ubuntu falls Ihr diese Wege von Canonical nicht untersützen möchtet. Die Regeln werden mit jeder Distroversion strenger und die Umstellung immer komplizierter. Weitere Infos zu Installationen von Programmen unter Linux findet Ihr hier!