cgarling hat geschrieben: 02.05.2022 15:23:19
Hallo in die Runde!
Moin.
cgarling hat geschrieben: 02.05.2022 15:23:19
Nur bei apt bekomme ich die Warnung "WARNING: apt does not have a stable CLI interface. Use with caution in scripts.", weshalb ich noch apt-get verwende.
Das „noch“ am Ende kannst du streichen. Wie dir die Warnung ja gesagt hat, ist die Benutzung von
apt in Skripten nicht empfohlen. Das wird in der Manpage von
apt nochmal genauer ausgeführt.
apt-get,
apt-cache und co. sind durch
apt nicht obsolet geworden, sondern für Skripte weiter die angedachten Werkzeuge.
Erstmal als kritische Nachfrage: Warum steht dort überall
sudo? – das ist in meinen Augen meist ein Anti-Pattern. Oder zeugt allgemein, ohne das ich dir hier damit zu nahe treten will, manchmal von fehlendem Verständnis von Benutzerrechten.
Wird das Skript vielleicht sowieso in Kontext des root-Benutzers ausgeführt? Dann kannst du
sudo generell weglassen. Oder, falls es doch von einem unprivilegierten Benutzer gestartet wird, würde ich anregen, das ganze Skript als
sudo upgrade-without-restarts oder so aufzurufen.
Als nächstes:
Wenn ich mich nicht völlig täusche, ist
redundant. Das
yes am Anfang kannst du dir sparen. Zweimal ja ist immer noch „nur“ ja
cgarling hat geschrieben: 02.05.2022 15:23:19
Manuelle Tests haben ergeben, dass apt-get Pakete zurückhält "kept back" die apt aber installieren würde.
Das darf eigentlich nicht sein. Abgesehen von der Benutzerschnittstelle –
apt hat bunte Fortschrittsbalken – müssen sich beide identisch verhalten. Hast du sie exakt gleich aufgerufen? Oder einmal vielleicht
full-upgrade benutzt?
cgarling hat geschrieben: 02.05.2022 15:23:19
Laut meiner Recherche verhindert das policy-rc.d den Neustart der Dienste, sofern ein Update einen anfordern würde.
Ja, das soll anscheinend auch mit systemd weiterhin so funktionieren (siehe
man deb-systemd-invoke). Das setzt voraus, dass die Maintainerskripte der Pakete entsprechend geschrieben sind und
deb-systemd-invoke benutzen. Die aus dem Debian-Repo sind das wohl – benutzt du evtl. (selbstgeschriebene) Fremdpakete?
cgarling hat geschrieben: 02.05.2022 15:23:19
Code: Alles auswählen
export DEBIAN_FRONTEND=noninteractive
yes '' | sudo apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" upgrade
Ich kenne mich mit sudo recht wenig aus. Aber da es eine explizite Option
--preserve-env hat, nehme ich mal an, dass das hier dein Problem ist: Du exportierst zwar
DEBIAN_FRONTEND. In die wegen
sudo saubere Environment von
apt-get wird die Variable aber nicht übernommen. Also: Siehe mein Einwand oben zum wild verteilten
sudo. Oder
--preserve-env ergänzen.