staging.inyokaproject.org

Automatische Updates wenn kein Konflikt

Status: Ungelöst | Ubuntu-Version: Ubuntu 25.04 (Plucky Puffin)
Antworten |

gantim

Anmeldungsdatum:
22. Oktober 2023

Beiträge: Zähle...

Für Updates verwende ich ein eigenes Script, die grafische Verwaltung mag ich nicht. Gerne möchte ich dafür sorgen, dass diese Updates automatisch geschehen, wenn sie ohne Konflikte durchgeführt werden können. Genau hier ist mein derzeitiges Problem.

Fiktives Beispiel: Wenn ich vor ein paar Jahren noch nicht wusste, dass man besser nicht in sshd_config Anpassungen vornimmt und dort etwas geändert habe, dann gibt es heutzutage einen Konflikt beim Update des openssh-Paketes, wenn eine Konfiguration oder ein Kommentar seitens des Paket-Maintainers in dieser Datei geändert wird. Da möchte ich die Anpassung, die ich fälschlicherweise in sshd_config gemacht habe, in eine Datei in sshd_config.d schreiben. Dann übernehme ich die Änderungen des Paket-Maintainers und habe eine saubere Installation, die künftig deswegen keinen Konflikt mehr bei Updates haben wird.

Derzeit mache ich:

1
apt update && apt full-upgrade && apt autoremove

(tatsächlich ist der Rest des Scriptes nicht wesentlich für diese Frage) und werde bei Konflikten gefragt. Das kann ich in einem zweiten Terminal lösen, oder Abbrechen und später weitermachen.

Mein Anliegen: Ich möchte etwas wie apt update -y, das aber bei einem Konflikt abbricht und einen Fehler meldet. Darauf kann ich im Script reagieren und beispielsweise mit notify-send einen Hinweis anzeigen oder eine Mail senden oder was auch immer.

Das wäre die Grundlage, damit ich die apt Updates/Upgrades automatisch aufrufen kann, statt sie in unregelmäßigen Abständen manuell durchzuführen.

Konflikte sind selten. Ich erwarte nicht öfter als einmal alle 1-2 Jahre so etwas zu sehen. Aber wenn es der Fall ist, möchte ich es sehen und nicht automatisch die eigene Konfiguration behalten, wie es UnattendedUpgrades meines Wissens der Fall wäre. Wenn dann die lokale modifizierte Variante stehen bleibt, ist es ansonsten unnötig schwierig, die Änderungen gegenüber der ursprünglichen Paketversion, die man modifiziert hat, herauszufinden und in die aktuelle zu übertragen.

In der man-Page von apt und apt-get wird so manches an Optionen erwähnt, aber das Zusammenspiel, was die Option genau bewirkt und ob alle Fälle eines automatischen Ablaufs (upgrade wenn ohne Konflikte möglich durchführen, ansonsten Abbruch mit Exitcode) dann abgefangen wären, erschließt sich mir nicht. Gibt es bereits passende Optionen für meinen Wunschablauf? Insbesondere wird erwähnt, dass -y unter einigen Umstände abbricht, was genau mein Wunsch wäre, aber eben mein Beispiel wird nicht erwähnt. Tut es schon, was ich will oder kann man es mit DEBIAN_FRONTEND=noninteractive dazu bringen?

Am Besten fände ich es natürlich, wenn Upgrades für konfliktfreie Pakete weiter installiert würden und erst am Schluss der Konflikt gemeldet wird, oder noch besser eine Liste der Konflikte. Aber mit einem Abbruch könnte ich gut leben.

Ich habe mittels Google schon Diskussionen zu dem Thema gefunden, aber leider keine befriedigenden Antworten.

Lidux

Anmeldungsdatum:
18. April 2007

Beiträge: 16801

Hallo gantim,

Das reicht aber nicht, da in deinem System auch Snaps & vielleicht auch Flatpacks & Appimage sind.

PS: Sicherheitsaktualisierungen werden sowieso automatisch gemacht.

Geht es hier um einen Server ?

Gruss Ldux

gantim

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2023

Beiträge: Zähle...

Genau, snap und flatpak folgen auch noch in dem Script, dort gibt es meines Wissens solche Probleme aber nicht.

Es geht um diverse VMs Ubuntu, Proxmox und Debian (meist Server, zuhause auf Proxmox oder beim Provider) sowie um mein Notebook.

Ich mag das grafische Zeug wie gesagt gar nicht und mache Updates auch auf meinem eigenen Desktop lieber in einem Terminal. In der GUI habe ich immer das Gefühl nicht zu wissen, was ein Klick tatsächlich bedeutet/auslöst.

Primär möchte ich etwas, das überall automatisch regelmäßig unüberwacht laufen kann, weil es bei Problemen nichts macht, sondern Bescheid gibt.

gantim

(Themenstarter)

Anmeldungsdatum:
22. Oktober 2023

Beiträge: Zähle...

Vielleicht wurde meine Frage nicht verstanden, ich formuliere noch einmal kürzer:

  • Besteht die Möglichkeit, apt upgrade so aufzurufen, dass es alle anstehenden Aktualisierungen durchführt, aber im Fall eines Konflikts (oder anderen Problemen) abbricht und das an das aufrufende Script per Exitcode oder anders meldet?

Unter-/Zusatzfragen:

  • Macht apt-get upgrade -y das schon? (habe widersprüchliches gelesen)

  • Hilft das Setzen von non-interactive dabei?

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 5356

gantim schrieb:

  • Besteht die Möglichkeit, apt upgrade so aufzurufen, dass es alle anstehenden Aktualisierungen durchführt, aber im Fall eines Konflikts (oder anderen Problemen) abbricht ...

Das macht es sowieso genau so.

... und das an das aufrufende Script per Exitcode oder anders meldet?

Das musste dann halt so wie du es haben willst im Script definieren.

z.B.

#!/bin/bash

# System aktualisieren
if ! sudo apt update && sudo apt upgrade -y; then
    notify-send "Fehler" "Update oder Upgrade fehlgeschlagen!"
    exit 1
fi

notify-send "Erfolg" "System erfolgreich aktualisiert."

Testen musste selbst.

Antworten |