[[Vorlage(Getestet, jammy)]] {{{#!vorlage Wissen [:Aktualisierungen: Updates unter Ubuntu] [:Programme_starten: Programme starten] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] (optional) [:Terminal: Ein Terminal öffnen] (optional) [:Editor: Editor mit Root-Rechten] (optional) [:Benutzer und Gruppen: Gruppenzugehörigkeit anpassen] (optional) }}} [[Inhaltsverzeichnis()]] [[Bild(./software-update-available.png, 48, align=left)]] Wie bei jedem Betriebssystem, sollten auch bei Ubuntu regelmäßig Updates installiert werden. Dabei handelt es sich um Fehlerkorrekturen, welche die Stabilität des Systems verbessern und insbesondere potentielle oder erwiesene Sicherheitslücken schließen. Die Updates spielen unter Ubuntu jedoch keine neuen Versionen eines Programms ein, die neue Funktionen enthalten. Genauer beschrieben wird das Verhalten unter [:Aktualisierungen:]. = Benutzung = Wer ständig mit dem Internet verbunden ist, wird automatisch über wichtige Sicherheitsupdates informiert, über andere Updates wird spätestens wöchentlich informiert. Standardmäßig wird jeden Tag automatisch nach neuen Updates gesucht. Normalerweise erhält jedoch nur ein [:Administrator:] (z.B. der bei der Installation angelegte Benutzer) Benachrichtigungen über Updates. Wie man das ändern kann ist [#Einfachen-Benutzern-erlauben-Updates-zu-installieren unten] beschrieben. {{{#!vorlage Hinweis Für das Aktualisieren von bereits installierten Paketen ist bei neueren Ubuntu-Versionen kein Passwort mehr nötig. Um Pakete zu entfernen oder neue zu installieren natürlich weiterhin schon. }}} [[Bild(./gnome-update-notifier.png, 274, align=right)]] = Aktualisierungsverwaltung = Die Aktualisierungsverwaltung listet alle verfügbaren Updates auf. Die Schaltfläche ''"Prüfen"'' liest dabei die Paketquellen noch einmal neu ein, so dass die Liste an verfügbaren Paketen in jedem Fall auf dem neusten Stand ist. Über das Auswahlfeld ''"Beschreibung der Aktualisierung"'' lassen sich Informationen zu jedem der aktualisierten Pakete einblenden. Ein Klick auf ''"Aktualisierungen Installieren"'' sorgt nun dafür, dass die markierten Updates heruntergeladen und installiert werden. Danach kann man das Fenster schließen. = Benachrichtigungen über anstehende Aktualisierungen = [[Bild(Wiki/Icons/Oxygen/system-software-update.png, 48, align=right)]] = Konfiguration = = Automatische Updates ohne Interaktion = Mit wenigen Klicks kann veranlasst werden, dass Sicherheitsupdates automatisch heruntergeladen und installiert werden. So kann man administrativen Aufwand sparen. == GUI == In der Aktualisierungsverwaltung gibt es einen Dialog, in dem sich zahlreiche Einstellungen rund um die Paketverwaltung finden. Dort muss unter ''"Wenn Sicherheitsaktualisierungen verfügbar sind:"'' die Auswahl zu ''"Automatisch herunterladen und installieren"'' gesetzt werden, sofern diese nicht schon bereits voreingestellt ist. === unattended-upgrades === Die automatische Installation der Updates wird von '''unattended-upgrades''' übernommen: {{{#!vorlage Paketinstallation unattended-upgrades }}} Während der Installation kann das gewünschte Verhalten entsprechend konfiguriert werden. Möchte man es nachträglich ändern, verwendet man den Befehl: {{{#!vorlage Befehl sudo dpkg-reconfigure -plow unattended-upgrades }}} Logdateien werden im Verzeichnis '''/var/log/unattended-upgrades/''' gespeichert. Sollte versucht werden, den Computer herunterzufahren, während unattended-upgrades arbeitet, verzögert der gleichnamige [:Dienste:Dienst] dies so lange wie nötig, so dass das Herunterfahren länger dauert. Dies ist wichtig, damit keine unvollständig installierten oder konfigurierten Pakete hinterlassen werden. Um unattended-upgrades manuell (ohne [#GUI]) zu aktivieren, muss man die Datei '''/etc/apt/apt.conf.d/10periodic''' bearbeiten oder anlegen, [5], sodass sie mindestens diese Einträge enthält: {{{ APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1"; }}} {{{#!vorlage Experten Der Parameter für `APT::Periodic::Unattended-Upgrade` gibt an, in welchem Zeitintervall (in Tagen) die automatische Update-Installation durchgeführt werden soll. `0` bedeutet "deaktiviert". Die Einstellungen werden in die Datei '''/etc/apt/apt.conf.d/20auto-upgrades''' geschrieben. }}} In der Datei '''/etc/apt/apt.conf.d/50unattended-upgrades''' befinden sich noch weitere Einstellungen. Wer einen [:Serverdienste#E-Mail:Mailserver] und das Programm '''mailx''' (bspw. aus dem Paket '''bsd-mailx''') installiert hat, kann sich so z.B. auch nach jedem Update oder nur bei Fehlern per Mail benachrichtigen lassen, alternativ kann auch eine lokale Nachricht an einen Benutzer versendet werden. ==== Nicht nur Sicherheits-Updates ==== Sollen nicht nur Sicherheits-Updates automatisch installiert werden, muss die Datei '''/etc/apt/apt.conf.d/50unattended-upgrades''' editiert werden. [4] Dazu müssen die Kommentarzeichen `//` in folgender Zeile entfernt werden: Die Zeile vorher: {{{ // "${distro_id} ${distro_codename}-updates"; }}} Die Zeile nachher: {{{ "${distro_id} ${distro_codename}-updates"; }}} So werden auch normale Updates automatisch installiert. Wenn gewünscht, kann mit Einträgen nach dem gleichen Schema auch für weitere Archive das automatische Update aktiviert werden. ==== Updates aus allen Paketquellen automatisch installieren ==== Hierzu muss die Datei '''/etc/apt/apt.conf.d/50unattended-upgrades''' um folgenden Inhalt ergänzt werden. {{{ Unattended-Upgrade::Origins-Pattern { "origin=*"; }; }}} Dies sorgt dafür, dass alle Pakete aus allen Quellen (auch Fremdquellen und PPAs) automatisch installiert werden. === unattended-upgrades auf Laptops === Laptops werden auch von unerfahrenen Nutzer verwendet, die sich nicht um (Sicherheits)-Updates selber kümmern können oder möchten. Sie wünschen sich oft auch ein aktuelles System. Auf Laptops verhindern mehrere Bedingungen diesen Wunsch. * Der Laptop wird nicht so regelmäßig gestartet. Es gibt weniger Zeit zur Überprüfung auf Updates. * Der Laptop hat weniger Zeit, um die Updates zu installieren. * Der Laptop steckt insbesondere beim starten nicht immer am Netz AC-Power sondern erst wenn der Nutzer merkt, dass der Akku Energie verloren hat. * Der Nutzer hat keine Update-Rechte Ubuntu ermöglicht und verwendet aktuell 22.04 standardmäßig zwei systemd Timer, die automatische Updates erlauben. 1. apt-daily.timer: sorgt dafür, dass nach verfügbaren Updates gesucht wird und löst um 6:00 und um 18:00 mit einer Verzögerung um 12h aus. 1. apt-daily-upgrade.timer: installiert die verfügbaren Updates via unattended-upgrade und löst um 6:00 mit einer Verzögerung um 60m aus (ACHTUNG NACH 1.) `After=apt-daily.timer` Die nächste geplante Ausführung lässt sich mittels folgendem Befehl nachvollziehen: {{{#!vorlage Befehl systemctl list-timers | grep "LEFT\|apt" }}} ==== Suche nach verfügbaren Updates anpassen ==== Ist der Rechner zum geplanten Zeitpunkt aus, werden die Timer beim nächsten Start neu gestellt. Je nach Nutzungsverhalten kann es also dazu kommen, dass verfügbare Updates nicht erkannt werden. Man kann einen override setzen um öfter nach Updates zu suchen: {{{#!vorlage befehl sudo systemctl edit apt-daily.timer }}} {{{ [Unit] Description=Daily apt download activities [Timer] OnCalendar=*-*-* 6,10,14,18:00 RandomizedDelaySec=4h Persistent=true [Install] WantedBy=timers.target }}} Weiterhin soll sowohl im Akkubetrieb als auch bei AC Power nach Updates gesucht werden `ConditionACPower=`: {{{#!vorlage befehl sudo systemctl edit apt-daily.service }}} {{{ [Unit] Description=Daily apt download activities Documentation=man:apt(8) After=network.target network-online.target systemd-networkd.service NetworkManager.service connman.service ConditionACPower= [Service] Type=oneshot ExecStartPre=-/usr/lib/apt/apt-helper wait-online ExecStart=/usr/lib/apt/apt.systemd.daily update }}} ==== Installation verfügbarer Updates anpassen ==== Oft kommt es zu dem Fall, dass die möglichen Updates zwar erkannt aber nicht installiert werden. Es kann ein override gesetzt werden, damit dies häufiger geschieht (spätestens 30min nach Rechnerstart/Zeitplan bzw. apt-daily.timer): {{{#!vorlage befehl sudo systemctl edit apt-daily-upgrade.timer }}} {{{ [Unit] Description=Daily apt upgrade and clean activities After=apt-daily.timer [Timer] OnCalendar=*-*-* 6,10,14,18:00 RandomizedDelaySec=30m Persistent=true [Install] WantedBy=timers.target }}} Weiterhin sollen sowohl im Akkubetrieb als auch bei AC Power die Updates installiert werden `ConditionACPower=` (Nach erstmaliger Änderung kann die Installation auf Laptops auch mal 10min dauern bis alles aktuell ist für diesen Ausnahmefall sollte der Akku überwacht sein, damit der Laptop nicht während dem installieren ausgeht.) {{{#!vorlage befehl sudo systemctl edit apt-daily-upgrade.service }}} {{{ [Unit] Description=Daily apt upgrade and clean activities Documentation=man:apt(8) After=apt-daily.service network.target network-online.target systemd-networkd.service NetworkManager.service connman.service ConditionACPower= [Service] Type=oneshot ExecStartPre=-/usr/lib/apt/apt-helper wait-online ExecStart=/usr/lib/apt/apt.systemd.daily install KillMode=process TimeoutStopSec=900 }}} Zum Schluss bietet unattended-upgrade auch noch einen Schalter, der die Installation der Updates im Akkubetrieb generell ermöglicht/verhindert. hier können auch gleich [:Aktualisierungen/Konfiguration/#Updates-aus-allen-Paketquellen-automatisch-installieren: alle Updates] aktiviert werden. {{{#!vorlage befehl sudo nano /etc/apt/apt.conf.d/50unattended-upgrades }}} {{{ Unattended-Upgrade::OnlyOnACPower "false"; }}} Alle genannten Änderungen lassen sich mittels folgendem Befehl übernehmen: {{{#!vorlage befehl sudo systemctl daemon-reload }}} === Probleme === Sollten bei der Installation der Updates Probleme auftreten, werden diese in den Logdateien in '''/var/log/unattended-upgrades/''' vermerkt. Der folgende Befehl sollte dann entsprechende Hinweise liefern: {{{#!vorlage befehl zgrep -Ev 'DEBUG|INFO' /var/log/unattended-upgrades/unattended-upgrades.log* }}} Die Updates müssen z.B. in folgendem Szenario manuell durchgeführt werden: 1. Ein Paket enthält eine Konfigurationsdatei (üblicherweise unter '''/etc/'''). 1. Diese Datei wird vom [:Administrator:] verändert. 1. Ein Update des Paketes enthält eine neue Version der Konfigurationsdatei, die sich von der ursprünglichen unterscheidet. Es erfolgt eine Benachrichtigung durch [:dpkg:], bei der der Administrator nun selbst entscheiden muss, ob er seine eigene, modifizierte Datei behalten oder die neue Datei aus dem aktualisierten Paket nehmen will. Allerdings lässt sich auch dies [https://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/ automatisieren] {en}, indem die Datei '''/etc/apt/apt.conf.d/local''' erstellt wird. Soll standardmäßig die jeweilige Konfigurationsdatei nicht verändert werden und dpkg alleine entscheiden, ob eine Nachfrage erscheinen soll, empfiehlt sich folgender Dateiinhalt: {{{# Dpkg::Options { "--force-confdef"; "--force-confold"; } }}} Die Version des Paketbetreuers befindet sich dann unter dem selben Pfad wie die Konfigurationsdatei, nur mit der zusätzlichen Endung '''.dpkg-dist'''. Soll die jeweilige Konfigurationsdatei dagegen automatisch standardmäßig mit der neuen Version des Paketbetreuers ersetzt werden, sollte Folgendes eingetragen werden: {{{# Dpkg::Options { "--force-confnew"; } }}} Die alte Version befindet sich dann unter dem selben Pfad wie die Konfigurationsdatei, nur mit der zusätzlichen Endung '''.dpkg-old'''. Falls [https://packages.qa.debian.org/u/ucf.html ucf] {en} verwendet wird, sind die Endungen jeweils '''.ucf-dist''' bzw. '''.ucf-old'''. == Benachrichtigung kurz nach dem Einloggen erhalten == Hier wird erläutert, wie man Update-Benachrichtigungen ein paar Minuten früher erhalten kann. Vorab eine kurze Beschreibung des Standardverhaltens. Normalerweise läuft der Vorgang zur Update-Prüfung (und Benachrichtigung) so ab: 1. Nach dem Einschalten des PCs bzw. dem Verbinden des Laptops mit dem Ladegerät wird 5 Minuten gewartet, dann läuft der tägliche [:Cron#Anacron-Anac-h-ronistic-Cron:Anacron]-Job in '''/etc/cron.daily''' an. Diese Verzögerung ist in der Datei '''/etc/anacrontab''' konfiguriert. Zu den Skripten gehört u.a. auch '''/etc/cron.daily/apt'''. 1. Dieses Skript enthält eine zufällige Zeitverzögerung von bis zu 30 Minuten. Argument dafür: Viele Server, welche Tag und Nacht durchlaufen, würden ohne diese Verzögerung alle gleichzeitig Updates herunterladen und könnten dadurch die Paketserver überlasten. Um gleich (d.h. ca. 5 Minuten) nach dem Einschalten des Rechners oder dem Einstecken des Ladekabels in den Laptop über die anstehenden Updates benachrichtigt zu werden, ändert man die Konfigurationsdatei '''/etc/apt/apt.conf.d/10periodic''' in einem Editor mit Root-Rechten [4]. Man muss folgende Zeile einfügen: {{{ APT::Periodic::RandomSleep "0"; }}} {{{#!vorlage Hinweis Der Wert `"0"` sorgt dafür, dass 0 Sekunden gewartet wird. Andere Werte sind auch möglich, z.B. `"900"` für eine Verzögerung von bis zu 15 Minuten. }}} == Einfachen Benutzern erlauben, Updates zu installieren == Nicht an jedem Gerät arbeitet der Administrator regelmäßig selbst. Dadurch sind quasi alle verfügbaren Updates auf Eis gelegt, sofern man sie nicht automatisch installieren lässt. Vertraut man jedoch den Benutzern bzw. den (Ubuntu-)Paketquellen, kann man zulassen, dass Updates auch ohne komplette Administrator-Rechte installiert werden können. Dies erreicht man via [:PolicyKit:]. Um normalen Nutzern (z.B. Gruppe `update`) Updaterechte zu geben, muss die Datei '''/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla''' mit Root-Rechten [4] bearbeitet werden. Folgender Abschnitt ist für das Aktualisieren bereits installierter Software zuständig: {{{ [Update already installed software] Identity=unix-group:sudo Action=org.debian.apt.upgrade-packages ResultActive=yes }}} Dieser wird wie folgt ergänzt: {{{ [Update already installed software] Identity=unix-group:sudo;unix-group:update Action=org.debian.apt.upgrade-packages ResultActive=yes }}} Möchte man nur einem einzelnen Nutzer statt einer ganzen Gruppe erlauben, Updates zu installieren, kann man das mit `unix-user:NUTZERNAME` statt `unix-group:update` tun. Wenige Aktualisierungen wie z.B. die [:Kernel:]-Updates installieren neue Pakete. Dies erfordert in jedem Fall die Eingabe eines Administrator-Passwortes. Solche Updates können also auch mit obigen Änderungen nicht von normalen Benutzern installiert werden. === Benachrichtigung anzeigen === {{{#!vorlage Hinweis Funktioniert nicht unter Kubuntu, da es den update-notifier nicht verwendet. }}} Soll auch automatisch über neue Updates benachrichtigt werden, muss dem update-notifier mitgeteilt werden, dass er auch Benutzer, welche nicht in der Gruppe `sudo` sind, darüber informiert. Hierfür muss er mit einer bestimmten Option gestartet werden. Diese gibt man einfach in der Autostart-Datei mit an. Dazu öffnet man den Starter '''/etc/xdg/autostart/update-notifier.desktop''' (Aktualisierungsbenachrichtigung) in einem Editor mit Root-Rechten [4] und ergänzt die `Exec=`-Zeile: {{{ Exec=update-notifier --force }}} == Problembehebung== Bei Problemen mit der graphischen Oberfläche der Aktualisierungsverwaltung, hilft ein Update über das Terminal zu starten. Dazu folgenden Befehl benutzen. {{{#!vorlage Befehl sudo apt-get dist-upgrade }}} = Links = * [:Paketverwaltung:] {Übersicht} * [:Aktualisierungen:] - Hintergründe über die Ubuntu-Updatepolitik # tag: Einsteiger, Paketverwaltung, Aktualisierung, Sicherheit, System