Unattended Upgrades

Aus Foxwiki

Unattended Upgrades

Der Zweck von unattended-upgrades besteht darin, den Computer automatisch mit den neuesten Sicherheits- (und anderen) Updates auf dem neuesten Stand zu halten

Wenn Sie es verwenden möchten, sollten Sie über Möglichkeiten zur Überwachung Ihrer Systeme verfügen, z. B. durch die Installation des Pakets apt-listchanges und dessen Konfiguration, sodass Sie E-Mails über Aktualisierungen erhalten

Ab Debian 9 (Stretch) sind sowohl die Pakete unattended-upgrades als auch apt-listchanges standardmäßig installiert und Upgrades sind mit dem GNOME-Desktop

Um diese Pakete zu installieren, führen Sie den folgenden Befehl als root aus

apt-get install unattended-upgrades apt-listchanges

Die Standardkonfigurationsdatei für das Paket „unattended-upgrades“ befindet sich unter /etc/apt/apt.conf.d/50unattended-upgrades

  • Alle lokalen Anpassungen sollten sich unter /etc/apt/apt.conf.d/52unattended-upgrades-local befinden (weitere Informationen finden Sie in der README-Datei des Pakets)
editor /etc/apt/apt.conf.d/52unattended-upgrades-local

In diesem Abschnitt wird gesteuert, welche Pakete aktualisiert werden

Unattended-Upgrade::Origins-Pattern {
   // ..
};

Sie sollten zumindest die folgende Zeile auskommentieren

Unattended-Upgrade::Mail "root";

Automatic call via /etc/apt/apt.conf.d/20auto-upgrades

Um unbeaufsichtigte Upgrades zu aktivieren, müssen Sie sicherstellen, dass die apt-Konfigurationsdatei /etc/apt/apt.conf.d/20auto-upgrades mindestens die folgenden Zeilen enthält

editor /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Die Datei /etc/apt/apt.conf.d/20auto-upgrades kann manuell erstellt werden oder indem der folgende Befehl als root ausgeführt wird

dpkg-reconfigure unattended-upgrades

Oder nicht interaktiv durch Ausführen

echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean true | debconf-set-selections
dpkg-reconfigure -f noninteractive unattended-upgrades

Automatic call via /etc/apt/apt.conf.d/02periodic

„Alternativ“ können Sie auch die apt-Konfigurationsdatei /etc/apt/apt.conf.d/02periodic erstellen, um unattended-upgrades zu aktivieren.

editor /etc/apt/apt.conf.d/02periodic

Unten sehen Sie ein Beispiel /etc/apt/apt.conf.d/02periodic

// Control parameters for cron jobs by /etc/cron.daily/apt-compat 
//
// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";

// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";

// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";

// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";

// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "21";

// Send report mail to root
//     0:  no report             (or null string)
//     1:  progress report       (actually any string)
//     2:  + command outputs     (remove -qq, remove 2>/dev/null, add -d)
//     3:  + trace on
APT::Periodic::Verbose "2";

Manual run (for debugging)

Um die Fehlerbehebung zu unterstützen, müssen Sie möglicherweise unbeaufsichtigte Upgrades manuell ausführen.

sudo unattended-upgrade -d

See Also

  • /usr/share/doc/unattended-upgrades/README.md.gz
  • /usr/share/doc/apt/examples/configure-index
  • /etc/cron.daily/apt
  • man apt.conf(5)
  • man unattended-upgrade(8)
  • needrestart* Pakete, um zusätzliche laufende Prozesse zu identifizieren, die neu gestartet werden müssen, um (zuvor installierte Sicherheits-)Updates ohne Neustart anzuwenden

apt-listchanges

Nachfolgend finden Sie eine Beispielkonfigurationsdatei für [1], /etc/apt/listchanges.conf

$EDITOR /etc/apt/listchanges.conf
[apt]
frontend=pager
email_address=root
confirm=0
save_seen=/var/lib/apt/listchanges.db
which=both

Ändern von Download- und Upgrade-Zeitplänen (auf systemd)

Da Debian systemd verwendet, werden systemd timers verwendet, um regelmäßige APT-Wartungsaufgaben auszuführen. Diese Dateien werden vom apt-Paket bereitgestellt

Die relevanten Dateien sind

  • Für „Downloads“ verwendet: /lib/systemd/system/apt-daily.timer
    • wird überschrieben durch /etc/systemd/system/apt-daily.timer.d/override.conf
  • Für „Upgrades“ verwendet: /lib/systemd/system/apt-daily-upgrade.timer
    • wird überschrieben durch /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf

Die offiziellen Schritte zum Erstellen und Bearbeiten dieser Überschreibungen für diese Einstellungen sind für „Downloads“

sudo systemctl edit apt-daily.timer
sudo systemctl restart apt-daily.timer
sudo systemctl status apt-daily.timer (optional, you can check the next trigger time with this)
or for upgrades
sudo systemctl edit apt-daily-upgrade.timer
sudo systemctl restart apt-daily-upgrade.timer
sudo systemctl status apt-daily-upgrade.timer (optional, you can check the next trigger time with this)

Hier ist ein Beispiel dafür, wie Sie die „Downloadzeit“ auf 1 Uhr morgens setzen können, indem Sie Folgendes über sudo systemctl edit apt-daily.timer hinzufügen

[Timer]
OnCalendar==
OnCalendar=01:00
RandomizedDelaySec=0

Zeile 2 oben wird benötigt, um den unten in Zeile 5 angezeigten Standardwert zurückzusetzen (zu leeren). Zeile 4 oben wird benötigt, um zufällige Verzögerungen durch die Standardwerte zu verhindern

Die aktuellen Standardwerte für Downloads sind /lib/systemd/system/apt-daily.timer (zum Zeitpunkt des Schreibens dieses Artikels)

[Unit]
Description=Daily apt download activities

[Timer]
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h
Persistent=true

[Install]
WantedBy=timers.target
  1. https://wiki.debian.org/CategoryPackageManagement
  2. https://wiki.debian.org/CategorySystemAdministration