Updates

Hier beschreibe ich das Updaten von Debian- und Ubuntuservern. Wie man Proxmox Virtual Environments aktuell hält, habe ich unter https://tutorials.kernke.koeln/serveranwendungen/paperless-ngx.html beschrieben. Das Updaten von Docker-Containern habe ich beispielhaft unter https://tutorials.kernke.koeln/serveranwendungen/paperless-ngx.html beschrieben.



Updates manuell installieren

Wenn man manuell prüfen möchte, ob für das System updates vorliegen, dann verwendet man dazu den Befehl


sudo apt update
            
der dafür sorgt, dass die Paketverwaltung aktualisiert wird. Damit werden aber keine Updates installiert. Möchte man wissen, welche Updates verfügbar sind, dann kann man das mit dem Befehl

sudo apt list --upgradable
            
tun. Zweckmäßig kann es auch sein, die Auflistung der zu aktualisierenden Pakete abzuspeichern, um ggf. Updates, die Probleme machen, wieder zurück zu nehmen. Dazu gibt man ein:

sudo apt list --upgradable >updates.txt
            
Dann kann man bei Bedarf die gewünschten Updates mit

sudo apt upgrade [paketname]
            
installieren. Ohne Angabe von Paketnamen werden alle Pakete, für die neue Versionen vorliegen, aktualisiert. Wenn man keinen Anlass hat, bei Updates einzelne Pakete auszulassen, dann kann man auch gleich die Befehlskombination

sudo apt update && sudo apt upgrade -y
            
verwenden, um ohne Nachfrage alles zu aktualisieren, für das es aktuelle Pakete gibt.

Ausnahmefall: Rücknahme von Updates

Sollte durch ein Update einmal etwas kaputt gehen (was so gut wie nie der Fall ist), dann muss man ggf. die störenden Pakete wieder auf die vorherige Version zurück setzen (downgraden). Wenn man, wie oben empfohlen, die Ausgabe der zu aktualisierten Pakete, die ja auch die Ausgangsversionen enthält, gesichert hat, dann hat man Glück. Ansonsten muss man im Verzeichnis „/var/cache/apt/archives/“ nachsehen, welches die letzten funktionierenden Paketversionen waren. Dazu setzt man auf der Konsole den Befehl


sudo cat /var/log/apt/history.log
            
ab. Hat zum Beispiel das Update von gnupg-l10n Probleme bereitet, dann sucht man in der Ausgaben des obigen Befehls nach den entsprechenden Einträgen und findet (u.a.)

gnupg-l10n:amd64 (2.4.4-2ubuntu17, 2.4.4-2ubuntu17.2)
            
Mit dem Befehl

sudo apt install gnupg-l10n=2.4.4-2ubuntu17
            
kann man dann den Downgrade anstoßen.



Automatische Updates

Wenn man keine Bedenken hat, alle Pakete immer zu aktualisieren, wenn es neue Versionen gibt, dann kann man die Updates auch automatisieren. Das sollte man aber nur tun, wenn man regelmäßige Snapshotsicherungen durchführt, die man zurückspielen kann, wenn einem ein Update etwas kaputt macht. Für automatische Updates muss das Paket unattended-upgrades installiert werden:


sudo apt-get install unattended-upgrades 
            
Mit dem Befehl

sudo dpkg-reconfigure -plow unattended-upgrades 
            
kann man nachträglich noch einstellen, ob man das wirklich tun will (???). Wichtiger sind die Parameter in der Datei /etc/apt/apt.conf.d/10periodic, die man erst anlegen muss mit dem Befehl

sudo nano /etc/apt/apt.conf.d/10periodic
            
Dort müssen mindestens die Einträge

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
            
vorgenommen werden. In der Datei /etc/apt/apt.conf.d/50unattended-upgrades können weitere Einstellungen vorgenommen werden. Hier sollten die beiden "/" vor " "${distro_id} ${distro_codename}-updates"; entfernt werden, damit nicht nur Sicherheitsupdates installiert werden. Log-Dateien werden im Verzeichnis /var/log/unattended-upgrades/ gespeichert.



Automatische Rebootes

In der Datei /etc/apt/apt.conf.d/10periodic könnte man angeben, dass das System nach jedem Update rebootet. Das ist aber nicht nötig, schließlich handelt es sich nicht um ein Windoof-System. Von Zeit zu Zeit tut aber ein Reboot auch einem Linux-Server gut, um manche Updates auch wirksam zu machen. Das kann man mit einem Cronjob automatisieren. Dazu bearbeitet man z.B. die Datei /etc/contab mit


sudo nano /etc/crontab
            
und fügt eine neue Zeile

0 1     * * 0   root    /sbin/shutdown -r now
            
ein. Dann bootet der Rechner an jedem Sonntag um 1:00 Uhr neu. Sollte gerade ein Update laufen, dann würde der Reboot verzögert, bis das Update abgeschlossen ist. Nun braucht man sich um nichts weiter zu kümmern, außer gelegentlich die Logfiles zu prüfen.