ubuntuusers.de

verwaiste snaps finden

Hinweis:

Dieses Howto wurde von noisefloor erstellt. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich gegebenenfalls zusätzlich an den/die Verfasser des Howtos.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Problembeschreibung

snap[1] bietet leider keine Funktionalität, um snaps, welche als Abhängigkeit bei der Installation eines anderen snaps mitinstalliert wurden, aber jetzt nicht mehr benötigt werden, zu erkennen und automatisch zu entfernen. Es gibt also keine Funktionalität für snap, die einem apt autoremove der Paketverwaltung entspricht. Wenn man öfters snaps installiert und wieder deinstalliert, kann es vorkommen, dass man ein oder mehrere verwaiste snaps auf dem System hat. Diese stören zwar nicht, belegen aber unnötig Platz auf dem Laufwerk. Verwaiste snaps können z.B. ältere Versionen der Core snaps 🇬🇧 sein oder snaps, die eines der GUI Toolkits 🇬🇧 bereit stellen.

In diesem Howto wird erklärt, wie man verwaiste snaps identifizieren und dann entfernen kann.

Anleitung

Jedes snap hat eine "Base", auf der es läuft, in Form eines Core-snaps. Des Weiteren benötigen alle snaps, die eine grafische Benutzeroberfläche haben, ein snap, welches die benötigten Komponenten für die grafische Benutzeroberfläche bereit stellt, wie z.B. ein GNOME-snap oder ein Qt-snap. Diese snaps heißen „default provider“. Auf diesen "Basissnaps" (dem Core und den default providern) können alle snap gleichermaßen zugreifen, d.h. sie sind nur einmal installiert und können von mehrere snaps genutzt werden.

Im folgenden Beispiel sind alle snaps, die in der Minimalinstallation der Desktop-Variante von Ubuntu enthalten sind, aufgelistet:

snap list --all 
Name                       Version          Revision  Tracking         Herausgeber  Hinweise
bare                       1.0              5         latest/stable    canonical✓   base
canonical-livepatch        10.8.3           282       latest/stable    canonical✓   -
canonical-livepatch        10.8.2           278       latest/stable    canonical✓   deaktiviert
core22                     20240408         1380      latest/stable    canonical✓   base,deaktiviert
core22                     20240904         1621      latest/stable    canonical✓   base
firefox                    126.0.1-1        4336      latest/stable/…  mozilla✓     deaktiviert
firefox                    131.0-1          5014      latest/stable/…  mozilla✓     -
firmware-updater           0+git.5007558    127       latest/stable/…  canonical✓   -
gnome-42-2204              0+git.510a601    176       latest/stable/…  canonical✓   -
gtk-common-themes          0.1-81-g442e511  1535      latest/stable/…  canonical✓   -
snap-store                 0+git.97116aa    1134      latest/stable/…  canonical✓   deaktiviert
snap-store                 0+git.4fcd62b7   1218      latest/stable/…  canonical✓   -
snapd                      2.63             21759     latest/stable    canonical✓   snapd
snapd                      2.62             21465     latest/stable    canonical✓   snapd,deaktiviert
snapd-desktop-integration  0.9              157       latest/stable/…  canonical✓   deaktiviert
snapd-desktop-integration  0.9              178       latest/stable/…  canonical✓   -

Mit Hilfe des Befehls:

grep "default-provider:\|base:" /snap/*/*/meta/snap.yaml | awk '{print $NF}' | sort -u 

kann man sich anzeigen lassen, welche Basissnaps von diesen snaps benötigt werden:

bare
core22
gnome-42-2204
gtk-common-themes

In diesem Beispiel sind also keine verwaisten snaps im System vorhanden, alle installierten snaps sind entweder Anwendungen oder Basis-snaps.

Möchte man sich pro snap die "Base" anzeigen lassen, führt man folgenden Befehl aus:

grep "base:" /snap/*/*/meta/snap.yaml 

Möchte man sich pro snap den / die „default provider“ anzeigen lassen, führt man folgenden Befehl aus:

grep "default-provider:" /snap/*/*/meta/snap.yaml | uniq 

Installiert man jetzt z.B. Kompare als snap, sieht die snap-Liste anschließend so aus:

Name                         Version          Revision  Tracking         Herausgeber  Hinweise
bare                         1.0              5         latest/stable    canonical✓   base
canonical-livepatch          10.8.3           282       latest/stable    canonical✓   -
canonical-livepatch          10.8.2           278       latest/stable    canonical✓   deaktiviert
core22                       20240904         1621      latest/stable    canonical✓   base
core22                       20240408         1380      latest/stable    canonical✓   base,deaktiviert
firefox                      126.0.1-1        4336      latest/stable/…  mozilla✓     deaktiviert
firefox                      131.0-1          5014      latest/stable/…  mozilla✓     -
firmware-updater             0+git.5007558    127       latest/stable/…  canonical✓   -
gnome-42-2204                0+git.510a601    176       latest/stable/…  canonical✓   -
gtk-common-themes            0.1-81-g442e511  1535      latest/stable/…  canonical✓   -
kf5-5-111-qt-5-15-11-core22  5.111            7         latest/stable    kde✓         -
kompare                      23.08.3          98        latest/stable    kde✓         -
snap-store                   0+git.97116aa    1134      latest/stable/…  canonical✓   deaktiviert
snap-store                   0+git.4fcd62b7   1218      latest/stable/…  canonical✓   -
snapd                        2.63             21759     latest/stable    canonical✓   snapd
snapd                        2.62             21465     latest/stable    canonical✓   snapd,deaktiviert
snapd-desktop-integration    0.9              178       latest/stable/…  canonical✓   -
snapd-desktop-integration    0.9              157       latest/stable/…  canonical✓   deaktiviert

und die Liste der Basis-snaps wie folgt:

bare
core22
gnome-42-2204
gtk-common-themes
kf5-5-111-qt-5-15-11-core22

Das snap kf5-5-111-qt-5-15-11-core22 ist also bei den Basis-snaps neu hinzugekommen. Deinstalliert man jetzt Kompare via sudo snap remove --purge kompare wieder und ruft die Liste der installierten snaps und der Basis-snaps erneut auf, so sieht man, dass kf5-5-111-qt-5-15-11-core22 immer noch installiert ist, aber in der Liste der Basis-snaps nicht mehr auftaucht. Das snap ist also verwaist und kann manuell entfernt werden. Sollte man mehrere Revision eines verwaisten snaps auf dem System haben, muss man jede Revision einzeln entfernen.

verwaiste snaps automatisch per Skript entfernen

Wer verwaiste snaps nichts händisch identifizieren und entfernen möchte, kann mit Hilfe des Skripts orphand_snaps von Mylinde/orphand_snaps diesen Vorgang automatisch erledigen lassen. Dazu muss das Skript mit Root-Rechten[3] ausgeführt werden. Führt man das Skript ohne Root-Rechte aus, werden verwaiste snaps angezeigt, aber nicht deinstalliert.

  • snap - Wikiartikel zu snaps

Diese Revision wurde am 13. Dezember 2024 15:46 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: snap, Howto