Updateverwaltung
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 24.04 Noble Numbat
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
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:
Snaps werden automatisch zeitgesteuert oder manuell über den Befehl snap refresh aktualisiert. Dieser bietet einige zusätzliche Optionen, mit denen man das Verhalten von Updates beeinflussen kann.
Weiterhin kann man sich mit dem Befehl snap changes den Verlauf von Updates und Änderungen von Snaps anzeigen lassen.
Aktualisierungen - snap refresh¶
Die von snapcraft.io 🇬🇧 installierten Snaps werden im Hintergrund regelmäßig auf Aktualität überprüft und auch automatisch aktualisiert. Die Aktualisierung aller oder eines einzelnen Snaps kann aber auch manuell durchgeführt werden.
alle aktualisieren:
sudo snap refresh
gezielt einzelnes Snap aktualisieren:
sudo snap refresh NameDesSnaps
Aktualisierungsintervall anzeigen¶
Das aktuelle Intervall, mit dem alle Snaps aktualisiert werden sowie der Zeitpunkt der letzten und nächsten Aktualisierung lässt sich über den folgenden Befehl abfragen[1]:
snap refresh --time
Die Ausgabe sieht z.B so aus:
timer: 00:00~24:00/4 last: heute um 10:47 CET next: heute um 16:46 CET
Die Zeile beginnend mit timer
zeigt das Aktualisierungsintervall an. Im obigen Beispiel ist es das Standardintervall: 4x täglich. Die mit last
beginnende Zeile zeigt den Zeitpunkt der letzten Aktualisierung und die Zeile beginnend mit next
für wann die nächste Aktualisierung geplant ist.
Aktualisierungszeit einstellen¶
Man kann die Zeiten und Intervalle, mit denen Snaps aktualisiert werden, aber selber ein- / umstellen.
Die allgemeine Syntax lautet:
sudo snap set system refresh.timer=ZEITEN
ZEITEN
können Uhrzeiten, Tage oder eine Kombination aus beiden sein.
Beispiele möglicher Zeitangaben für Aktualisierungen | |
Angaben für ZEITEN | Erklärung |
mon,wed,fri,11:00 | Montags, Mittwochs und Freitags, jeweils im 11.00 Uhr |
tue,11:00-12:00,,thu,14:00-16:00 | Dienstags zwischen 11.00 und 12.00 Uhr und Donnerstags zwischen 14.00 und 16.00 Uhr (Beachte das doppelte Komma!) |
mon2,10:00-20:00/2 | Jeden 2. Montag, zum ersten Mal zwischen 10.00 und 15.00 Uhr und zum 2. Mal zwischen 15.00 und 20.00 Uhr |
00:00-24:00/24 | täglich jede Stunde |
Es gibt noch eine Vielzahl weiterer Möglichkeiten, Datum, Uhrzeit und Intervalle anzugeben. Beispiele und Erklärungen dazu findet man in der offizielle Dokumentation für Snaps 🇬🇧.
Updates temporär unterbinden¶
Ab snapd Version 2.58 kann man die Aktualisierung eines, mehrerer oder aller Snaps temporär unterbinden.
snap refresh --hold=DAUER [NAME_DES_SNAPS]
Der Parameter DAUER
kann entweder in Stunden (z.B. 24h
), Minuten (z.B. 30m
) oder Sekunden (z.B. 600s
) angegeben werden. Als DAUER
kann eine Dauer von maximal 90 Tagen vorgegeben werden. Möchte man jedoch für eines, mehrerer oder aller Snaps dauerhaft die Aktualisierung unterbinden, so erfolgt dies durch den Parameter forever
:
snap refresh --hold=forever [NAME_DES_SNAPS]
Das Unterbinden einer Aktualisierung kann z.B. dann sinnvoll sein, wenn man gezielt mit einer bestimmten Version eines Programms arbeiten will (oder muss) . Es ist jedoch zu bedenken, dass Aktualisierungen nicht zwingend optional sind! Von daher ist das Unterbinden von Aktualisierungen stets eine Risikoabwägung zwischen Kosten und Nutzen.
Wenn zeitweise nur eine nach Volumen abgerechnete Internetverbindung zur Verfügung steht (z.B. über eine LTE-Verbindung mit begrenztem Datenvolumen), kann man Aktualisierungen von snaps auch gezielt für solche Verbindungen unterbinden:
sudo snap set system refresh.metered=hold
Die Beschränkung kann mit
sudo snap set system refresh.metered=null
wieder aufgehoben werden.
Je nach dem, ob bei snap refresh --hold
ein oder mehrere Snaps angegeben wurden oder keine Namen angegeben wurden, verhält sich hold
leicht unterschiedlich:
Name eines Snaps angegeben: Das Snap wird nicht bei automatischen Aktualisierungen oder dem manuellen Aufruf von
snap refresh
aktualisiert. Der gezielte Aufruf vonsnap refresh NAME_DES_SNAPS
würde das entsprechende Snap trotzdem aktualisieren.kein Name eines Snaps angegeben: Es wird kein Snap automatisch aktualisiert. Der manuelle Aufruf von
snap refresh
odersnap refresh NAME_DES_SNAPS
würde aber alle Snaps bzw. das angegebene Snap aktualisieren.
Möchte man das Unterbinden der Aktualisierung vor deren Ablauf wieder erlauben, dann kann man das mit dem folgenden Befehl machen:
sudo snap refresh --unhold [NAME_DES_SNAPS]
Benachrichtigungen deaktivieren¶
Läuft eine Anwendung als Snap und eine Aktualisierung steht bereit, blendet die Desktopumgebung ein Hinweisbanner ein. Dieses weist darauf hin, dass man die Anwendung beenden sollte, damit die Aktualisierung durchgeführt werden kann. Benötigt man diesen Hinweis nicht, kann man diesen deaktivieren. Unter Ubuntu mit GNOME-Desktop geht man über "Einstellungen → Benachrichtigungen → snap User Session Agent" auf den Punkt "Benachrichtigungsbanner" und deaktiviert diesen.
von snapd erzwungene Aktualisierungen¶
Aktualisierungen von Programmen, welche als Snap installiert sind, können nur durchgeführt wenn das Programm nicht läuft. Mit der Aktualisierung wird dann so lange gewartet, bis das Programm beendet wurde. Wird das Programm 14 Tage nicht beendet, dann erzwingt snapd die Aktualisierung, indem das Programm geschlossen und die Aktualisierung durchgeführt wird. Dies passiert nicht für Snaps, die auf hold gesetzt sind.
Änderungsverlauf - snap changes¶
Verlauf der Änderungen ansehen¶
Man kann sich den Verlauf der Änderungen / Aktualisierungen der Snap wie folgt anzeigen lassen:
snap changes
ID Status Spawn Bereit Zusammenfassung 68 Done gestern um 16:56 CET gestern um 16:56 CET Versuche "firefox" Snap von /home/jochen/squashfs-root 69 Done gestern um 16:59 CET gestern um 16:59 CET Alle Snaps auffrischen: keine Aktualisierungen 70 Done gestern um 17:00 CET gestern um 17:01 CET "firefox" Snap wiederherstellen 71 Done gestern um 17:01 CET gestern um 17:01 CET Entferne "firefox" Snap 72 Done gestern um 17:31 CET gestern um 17:31 CET Versuche "inkscape" Snap von /home/jochen/squashfs-root 73 Done gestern um 17:44 CET gestern um 17:44 CET Entferne "inkscape" Snap 74 Done gestern um 17:46 CET gestern um 17:47 CET Installiere "inkscape" Snap 75 Done gestern um 20:37 CET gestern um 20:37 CET Entferne "inkscape" Snap 76 Done gestern um 20:38 CET gestern um 20:38 CET Alle Snaps auffrischen: keine Aktualisierungen 77 Done heute um 14:34 CET heute um 14:34 CET Forget of snapshot set #3 78 Done heute um 14:34 CET heute um 14:34 CET Restore of snapshot set #4
Jede Änderung hat eine einmalige Nummer, zu sehen in der Spalte "ID", in der Spalte "Zusammenfassung" wird ein kurzer Text ausgegeben, was gemacht wurde.
Wie außerdem zu sehen ist, wird die Zeit relativ zur aktuellen Zeit angegeben. Man kann sich über die Option --abs-time
aber auch die absolute Zeit ausgeben lassen.
Beispiel:
snap changes --abs-time
... 69 Done 2022-12-09T16:59:57+01:00 2022-12-09T16:59:57+01:00 Alle Snaps auffrischen: keine Aktualisierungen ...
Details zu einer Änderung anzeigen¶
Man kann sich für jeder Änderung detailliert anzeigen lassen, was im Rahmen der Änderung passiert ist. Die allgemeine Syntax lautet:
snap tasks CHANGE-ID
Beispiel:
snap tasks 70
Status Spawn Bereit Zusammenfassung Done gestern um 17:00 CET gestern um 17:00 CET Sicherstellen, dass die Voraussetzungen für "firefox" verfügbar sind Done gestern um 17:00 CET gestern um 17:00 CET Snap "" (2154) vorbereiten Done gestern um 17:00 CET gestern um 17:00 CET Snap "firefox" Dienste anhalten Done gestern um 17:00 CET gestern um 17:00 CET Aliase für Snap "firefox" entfernen Done gestern um 17:00 CET gestern um 17:00 CET Aktuelle Revision für Snap "firefox" nicht verfügbar machen Done gestern um 17:00 CET gestern um 17:00 CET Sicherheitsprofile für Snap "firefox" (2154) einrichten Done gestern um 17:00 CET gestern um 17:00 CET Snap "firefox" (2154) für das System verfügbar machen Done gestern um 17:00 CET gestern um 17:00 CET Automatisches Verbinden von geeigneten Plugs und Slots von Snap "firefox" Done gestern um 17:00 CET gestern um 17:00 CET Automatisch Aliase für Snap "firefox" festlegen Done gestern um 17:00 CET gestern um 17:00 CET Aliase für Snap "firefox" einrichten Done gestern um 17:00 CET gestern um 17:00 CET Snap "firefox" (2154) Dienste starten Done gestern um 17:00 CET gestern um 17:01 CET Den Konfigurationshook von Snap "firefox" ausführen, falls vorhanden Done gestern um 17:00 CET gestern um 17:01 CET Run health check of "firefox" snap Done gestern um 17:00 CET gestern um 17:00 CET firefox:etc-firefox mit snapd:system-files verbinden Done gestern um 17:00 CET gestern um 17:00 CET firefox:host-hunspell mit snapd:mount-control verbinden Done gestern um 17:00 CET gestern um 17:00 CET Hook connect-plug-host-hunspell von Snap "firefox" ausführen Done gestern um 17:00 CET gestern um 17:00 CET Einrichten der Sicherheitsprofile für Autoverbindungen des Snaps "firefox" (2154)
Man kann sich noch detaillierte Informationen zu jeder Änderung anzeigen lassen, nämlich wie lange jeder Schritt der Änderung gedauert hat. Dazu dient der Befehl
sudo snap debug timings CHANGE-ID
Beispiel:
snap debug timings 183
ID Status Doing Undoing Summary 4205 Done 38ms - Sicherstellen, dass die Voraussetzungen für "mosquitto" verfügbar sind 4206 Done 696ms - Snap "mosquitto" (831) von Kanal "stable" herunterladen ^ 662ms - download snap "mosquitto" 4207 Done 254ms - Zusicherungen für Snap "mosquitto" (831) abrufen und überprüfen 4208 Done 349ms - Snap "mosquitto" (831) einbinden ^ 9ms - check snap "mosquitto" ^ 281ms - setup snap "mosquitto" 4209 Done 29ms - Daten von Snap "mosquitto" kopieren 4210 Done 333ms - Sicherheitsprofile für Snap "mosquitto" (831) einrichten ^ 95ms - setup security backend "seccomp" for snap "mosquitto" ^ 200ms - setup security backend "apparmor" for 1 snaps ^ 123ms - load changed security profiles of 1 snaps 4211 Done 327ms - Snap "mosquitto" (831) für das System verfügbar machen ^ 220ms - generate wrappers for snap mosquitto ^ 32ms - update font config caches 4212 Done 49ms - Automatisches Verbinden von geeigneten Plugs und Slots von Snap "mosquitto" 4221 Done 43ms - mosquitto:network mit snapd:network verbinden 4222 Done 39ms - mosquitto:network-bind mit snapd:network-bind verbinden 4220 Done 345ms - Einrichten der Sicherheitsprofile für Autoverbindungen des Snaps "mosquitto" (831) ^ 98ms - setup security backend "seccomp" for snap "mosquitto" ^ 207ms - setup security backend "apparmor" for 2 snaps ^ 149ms - load changed security profiles of 2 snaps 4213 Done 30ms - Automatisch Aliase für Snap "mosquitto" festlegen 4214 Done 29ms - Aliase für Snap "mosquitto" einrichten 4215 Done 17ms - Installationshook von Snap "mosquitto" ausführen, falls vorhanden 4216 Done 19ms - Run default-configure hook of "mosquitto" snap if present 4217 Done 307ms - Snap "mosquitto" (831) Dienste starten ^ 209ms - enable services ["snap.mosquitto.mosquitto.service"] ^ 45ms - start services ^ 45ms - start service "snap.mosquitto.mosquitto.service" 4218 Done 14ms - Den Konfigurationshook von Snap "mosquitto" ausführen, falls vorhanden 4219 Done 17ms - Run health check of "mosquitto" snap
Links¶
Dokumentation - Administrieren von Snap-Aktualisierungen 🇬🇧 zu
snap refresh
undsnap changes
Dokumentation 🇬🇧 zu Datums- und Zeitangaben