mzurhorst hat geschrieben: 31.07.2022 12:13:36
Hallo zusammen.
Moin.
mzurhorst hat geschrieben: 31.07.2022 12:13:36
Meine Vermutung ist, dass Debian irgendwo in den Metadaten eines Pakets dafür ein Flag hat.
Nein, so etwas gibt es nicht. Es ist auch technisch nicht so generell notwendig. Die einzigen Pakete, nach deren Update ein Reboot wirklich regelmäßig notwendig ist, sind die Kernel-Pakete linux-image-*. Alle anderen Bestandteile kann man, auch wenn es im Einzelfall aufwändiger sein mag, im laufenden Betrieb auf einen neuen Stand bringen. Dienste z.B. neustarten, wo notwendig. Letzteres tun die jeweiligen Pakete aber sowieso normalerweise schon in ihren postinst-Skripten.
Ein Fall, der durch postinst-Skripte nicht abgedeckt sein kann, ist ein Update einer Bibliothek, die von einem Dienst benutzt wird. Ein danach notwendiges Neustarten betroffener Dienste kann man z.B. ganz leicht mit
needrestart automatisieren.
(Mein erster Verdacht nach Sichtung dieses "reboot-notifier" Bash Scripts war, dass "linux-base" eine Kategorie von Paketen sei, welche immer einen Reboot benötigen. Aber so eine Kategorie gibt es nicht bei Debian.)
linux-base ist ein Hilfspaket, von dem alle linux-image-* abhängen. Deshalb wird es wohl als Grund für den Reboot angegeben.
reboot-notifier benachrichtigt nämlich eben, wie die Paketbeschreibung sagt,
von sich aus nur nach einem Kernelupdate, dass ein Reboot notwendig ist. Oder wenn – von anderen Paketen, in manchen postinst-Skripten wird das gemacht – eine Datei /var/run/reboot-required angelegt wurde (
cron.daily aus reboot-required).
mzurhorst hat geschrieben: 31.07.2022 12:13:36
Der erste Teil war einfach, aber an dem zweiten Teil knobele ich nun.
Wo genau wird festgelegt, ob ein Paket einen Neustart erfordert?
[…] Das greift anscheinend erst NACH der Installation. Ich benötige diesen Hinweis aber VOR der Installation, damit ich den Reboot einplanen kann.
Einheitlich festgelegt ist das nirgendwo. Weil es wie gesagt kaum zwangsläufig notwendig ist. Die Datei /var/run/reboot-required ist ein semi-einheitlicher Mechanismus, um einen Reboot nahezulegen. Aber das kann immer nur währen/nach dem Update eines Pakets passieren.
Wenn du das unbedingt vorher erkennen willst, ob für dich ein Reboot notwendig erscheint, müsstest du wahrscheinlich eine Liste von Paketen pflegen, die ihn erfordern
könnten. (Die eigentlich nur linux-image-* enthalten muss
)
Hast du schon mal überlegt,
unattended-upgrades zu benutzen?