Debian Linux automatisch aktualisieren

Unter Debian Linux läuft die Paketverwaltung über „apt-get“ bzw. „aptitude“. Ein Update geschieht z.B. mit folgenden Befehlen.

sudo apt-get update
sudo apt-get (dist-)upgrade

Der erste Befehl aktualisiert die Paketlisten, die in der Datei „/etc/apt/sources.list“ eingetragen sind. Alternative Konfigurationen können auch unter „/etc/apt/sources.list.d“ liegen. Der zweite Befehl aktualisiert dann das System. Die beiden Befehle lassen sich auch kombinieren.

sudo apt-get update && sudo apt-get upgrade

Das „&&“ sorgt dafür, dass der zweite Befehl nur ausgeführt wird, wenn der Erste erfolgreich war. Ein Systemupdate lässt sich jedoch auch komplett automatisieren. Dafür gibt es das Paket „cron-apt„, welches installiert werden muss.

sudo apt-get update && sudo apt-get install cron-apt

Nach der Installation muss „cron-apt“ noch an die eigenen Bedürfnisse angepasst werden. Die Standardkonfiguration steht in der Datei „/etc/cron-apt/action.d/3-download“

sudo nano /etc/cron-apt/action.d/3-download
autoclean -y
dist-upgrade -d -y -o APT::Get::Show-Upgraded=true

Der Inhalt bedeutet, dass ein „dist-upgrade“ durchgeführt wird, die Pakete jedoch nur heruntergeladen aber nicht installiert werden. Wer über die Holzhammermethode gleich alles installieren möchte, kann hier den „-d“ Parameter entfernen. Empfehlenswert ist dieser Weg jedoch nicht. Bei einem „dist-upgrade“ kann es auch mal vorkommen, dass Pakete zurückgezogen werden. Sowas sehe ich davor lieber selbst, bevor ich später lange suchen muss, warum mein System Zicken macht. Meiner Meinung nach ist also ein reiner Download der Pakete ausreichend, damit die Installation definiert stattfinden kann.

Anders sieht es jedoch mit Security Updates aus. Gerade wenn man im Urlaub ist oder keine Lust hat täglich sein System zu prüfen, lohnt es sich diesen Schritt zu automatisieren.
Um die Standardkonfiguration zu lassen wie sie ist, können zusätzliche Konfigurationsdateien angelegt werden, welche zusätzlich abgearbeitet werden. Die Reihenfolge wird anhand der Nummerierung im Dateinamen gesteuert. Soll zusätzlich zum Paketdownload noch ein Update der Security Updates durchgeführt werden, wird unter „/etc/cron-apt/action.d“ eine Datei mit folgendem Inhalt erzeugt.

sudo nano /etc/cron-apt/action.d/5-secupdates
upgrade -y -o APT::Get::Show-Upgraded=true

Damit jetzt jedoch ausschliesslich Security Updates installiert werden, wird eine Paketliste benötigt, die sich auch nur darum kümmert.

sudo nano /etc/apt/sources.list.d/security.list

Folgende zwei Zeilen müssen in diese Datei eingetragen werden. Sollte „jessie“ nicht die eingesetzte Version sein, ist dies entsprechend anzupassen. Die neu hinzugefügten Zeilen können in der „/etc/apt/sources.list“ auskommentiert werden, da auch ein „apt-get“ Befehl die neue Datei berücksichtigt. Somit wird eine Meldung bzgl. doppelter Einträge vermieden. 

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

Damit diese Datei auch von „cron-apt“ berücksichtigt wird, muss eine weitere Konfigurationsdatei erzeugt werden.

sudo nano /etc/cron-apt/config.d/5-secupdates
OPTIONS="-q -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list -o Dir::Etc::SourceParts=\"/dev/null\""

Als letzter Schritt muss noch die Ausführung festgelegt werden.

sudo nano /etc/cron.d/cron-apt

Per Default wird die Aktion täglich um 4 Uhr morgens ausgeführt. Die Zeiten können nach Belieben angepasst werden. Um die Konfiguration zu testen, muss ein weiterer Befehl ausgeführt werden.

sudo cron-apt -s

Die Ergebnisse werden auch in einem Logfile unter „/var/log/cron-apt“ gespeichert.