{ "meta": { "title": "LXC-Aktualisierungen: Betriebssystem, Apps und Docker | ProxMenux", "description": "Konfigurieren und Ausführen von Betriebssystem-, Anwendungs-, Docker Engine- und Docker-Image-Updates aus einem LXC-Container." }, "header": { "title": "LXC-Aktualisierungen: Betriebssystem, Apps und Docker", "description": "Überprüfen Sie jedes Update-Ziel an einem Ort, führen Sie es unabhängig aus oder kombinieren Sie ausgewählte Ziele in einer kontrollierten Massenaktion." }, "intro": { "p1": "Der Reiter Aktualisierungen trennt Versionserkennung und Installation. Registrierung und optionale Versionsverfolgung erfolgen im App-Reiter; ausführbare Aktualisierungsmethoden werden hier verwaltet.", "p2": "Eine gespeicherte Anwendung wird in Updates angezeigt, auch wenn sie nur einen Weblink enthält. Die Versionsverfolgung ist optional und ein Updater kann unabhängig konfiguriert werden.", "callout": "Die Registrierung wählt keinen Updater aus. Wird ein passender Helper-Scripts-Updater erkannt, wählen und speichern Sie Helper-Scripts oder Eigener Befehl. Die Erkennung garantiert keine Kompatibilität. Die Wahl gilt pro App, auch wenn mehrere denselben LXC nutzen." }, "overview": { "heading": "Was der Tab enthält", "lead": "Jedes verfügbare Ziel hat seinen eigenen Abschnitt und seine eigene Aktion:", "items": [ "Betriebssystempakete für Debian-, Ubuntu- und Alpine-Container.", "Ein Abschnitt je registrierter Anwendung, auch für Datensätze mit nur einem Link.", "Ein Docker-Abschnitt, wenn Docker registriert ist, wobei Docker Engine und getaggte Images gruppiert sind.", "Ein konfigurierbarer Abschnitt Sammelaktualisierung mit anschließenden Sicherungs-, Neustart- und Zeitplanoptionen." ] }, "mechanisms": { "heading": "Wie eine Aktualisierungsmethode ausgewählt wird", "lead": "Der integrierte Weg für Proxmox VE Helper-Scripts verwendet den offiziellen update-apps-Mechanismus. Andere Installationen verwenden die passende Paket-, Docker- oder eigene Methode.", "officialReference": "Offizielle Referenz: Die Proxmox VE Helper-Scripts-Update-Apps-Dokumentation umfasst interaktive und unbeaufsichtigte Modi, Backups, Trockenläufe, temporäre Build-Ressourcen, Protokolle und Exit-Codes.", "colSource": "Quelle", "colAction": "Gezeigte Aktion", "colNotes": "Was läuft", "rows": [ { "source": "APT- oder APK-Pakete", "action": "OS Updates anwenden", "notes": "Aktualisiert die Containerpakete. Als dpkg- oder apk-Pakete installierte registrierte Apps werden im selben Lauf berücksichtigt." }, { "source": "Proxmox VE Helper-Scripts", "action": "Update anwenden", "notes": "Nachdem Helper-Scripts explizit ausgewählt wurde, wird das offizielle Anwendungsskript ausgeführt, das durch den validierten /usr/bin/update-Wrapper identifiziert wurde. Eine Marker- oder Katalogübereinstimmung allein ermöglicht niemals die Ausführung." }, { "source": "Eigener Befehl", "action": "Führen Sie den Updater aus", "notes": "Führt den gespeicherten Befehl im LXC aus und ersetzt jeden integrierten App-Updater für diesen Datensatz." }, { "source": "Docker Engine", "action": "Docker Engine aktualisieren", "notes": "Aktualisiert nur installierte Docker-Pakete und deren erforderliche Abhängigkeiten. Andere Betriebssystempakete und Container bleiben unverändert." }, { "source": "Docker-Image", "action": "Image aktualisieren", "notes": "Zieht das ausgewählte Image und erstellt die Compose-Servicegruppe oder den geschützten eigenständigen Container neu." } ], "callout": "Ein eigener Befehl ersetzt Helper-Scripts für diese Anwendung. Manuelle, Sammel- und geplante Läufe beachten die gespeicherte Wahl. Vorhandene eigene Befehle und ausdrücklich gespeicherte ältere Sammel- bzw. aktivierte Zeitplanauswahlen bleiben erhalten. Neu registrierte Apps werden nie durch einen alten Zeitplan aufgenommen." }, "docker": { "heading": "Docker Engine und Docker Images", "lead": "Nach der Docker-Registrierung im App-Reiter erscheinen Docker Engine und Image-Inventar im selben Abschnitt Docker.", "items": [ "Die Docker Engine-Versionsverfolgung ist vom OS-Paketzähler getrennt und verfügt über einen eigenen Update-Button.", "Lokale Images mit Tags werden anhand unveränderlicher Digests mit ihrer Registry verglichen. Jetzt prüfen aktualisiert das Inventar, ohne Images herunterzuladen oder Container neu zu starten.", "Compose-Dienste werden von ihrem deklarierten Projekt aktualisiert. Images, die zur gleichen Servicegruppe gehören, werden zusammen bearbeitet, damit das Projekt nicht wiederholt neu erstellt wird.", "Ein eigenständiger Container wird anhand seiner aktuellen Konfiguration neu erstellt. Der geschützte Ablauf bewahrt Rücksetzungsdaten auf und stellt bei einem Fehler den vorherigen Container wieder her.", "Jedes Image kann separat in manuellen, massenhaften und geplanten Updates ausgewählt werden, mit Ausnahme deklarierter Compose-Abhängigkeiten, die dem übergeordneten Service folgen müssen." ], "callout": "Container, die innerhalb von Docker laufen, werden nicht als unabhängige LXC-Anwendungen angezeigt. Ihre veröffentlichten Webports können als Links unter der Docker-Registrierung gespeichert werden, während Bildaktualisierungen im Docker-Bereich verbleiben." }, "actions": { "heading": "Individuelle Aktionen und Statusfarben", "lead": "Jeder Abschnitt bleibt unabhängig voneinander umsetzbar, unabhängig davon, ob ein Bulk-Update konfiguriert ist oder nicht.", "items": [ "Configure öffnet den Updater-Selektor, wenn keine Methode ausgewählt ist; Edit ändert eine gespeicherte Auswahl. Die Informationsschaltflächen erklären jede Option, verlinken auf die offizielle Dokumentation und zeigen ein benutzerdefiniertes Skriptbeispiel an. Die Auswahl einer Option führt sie nicht aus.", "Wenn die Versionsverfolgung deaktiviert ist, aber ein Updater vorhanden ist, wird die neutrale Aktion Run updater angezeigt. ProxMenux behauptet nicht, dass ein Update anhängig ist.", "Konfigurieren Sie ohne einen verfügbaren Helper-Scripts-Updater einen benutzerdefinierten Befehl. Das Deaktivieren einer Methode wählt nicht stillschweigend eine andere aus; bestehende Plan-/Zeitplanauswahlen bleiben gespeichert und nicht verfügbare Ziele werden gemeldet.", "Die Aktion Update image gilt nur für die ausgewählte Docker-Einheit; sie aktualisiert weder Docker Engine noch nicht verwandte Images." ], "statusColState": "Bekannter Zustand", "statusColAppearance": "Aussehen", "statusColMeaning": "Bedeutung", "statusRows": [ { "state": "Verifiziertes Update verfügbar", "appearance": "Lila Text, nach oben gerichtetes Symbol und lila Aktion", "meaning": "Installierte und verfügbare Versionen bzw. Image-Digests unterscheiden sich." }, { "state": "Nachweislich aktuell", "appearance": "Grünes Häkchen und grüne Aktion Aktualisiert", "meaning": "Die letzte abgeschlossene Überprüfung bestätigt, dass das Ziel aktuell ist." }, { "state": "Version unbekannt", "appearance": "Neutraler Text und neutrale Handlung", "meaning": "Ein Updater kann ausgeführt werden, aber es gibt keinen Versionsnachweis, um ihn als anhängig oder aktuell zu kennzeichnen." } ] }, "custom": { "heading": "Benutzerdefinierte Aktualisierungsbefehle", "lead": "Verwenden Sie einen benutzerdefinierten Befehl, wenn die Installation keinen verifizierten integrierten Updater hat oder wenn die normale Prozedur ersetzt werden muss.", "items": [ "Öffnen Sie Configure, wenn das Feld leer ist, oder Edit, wenn bereits eine Methode vorhanden ist.", "Bei einer integrierten App oder Docker Engine zeigt der Editor den aktuell verwendeten Befehl an. Das Speichern verschiedener Inhalte macht es zum expliziten Override für diesen Datensatz.", "Testen Sie zuerst die komplette Prozedur im LXC Terminal. Es muss nicht interaktiv sein, das korrekte Arbeitsverzeichnis verwenden und beim Ausfall einen Nicht-Null-Ausgangsstatus zurückgeben.", "pct exec nicht einschließen; ProxMenux betritt bereits den Container und führt den Befehl als root aus." ], "exampleLead": "Beispiel eines vollständigen Containerverfahrens:", "example": "cd /opt/my-app && ./update.sh", "callout": "Ein Versionsbefehl wie myapp --version liest nur eine Version; es ist kein Updater. Befehle laufen mit administrativen Privilegien, so dass gespeicherte Inhalte mit der gleichen Sorgfalt wie ein Root-Shell-Befehl überprüft werden müssen." }, "bulk": { "heading": "Sammelaktualisierung", "lead": "Die Sammelaktualisierung erstellt eine wiederverwendbare Aktion für eine genau festgelegte Zielauswahl im LXC. Sie steht nach den App- und Docker-Abschnitten und vor Optionen.", "items": [ "Betriebssystempakete sind Pflicht. Zusätzlich muss mindestens eine App, Docker Engine oder eine Docker-Image-Einheit ausgewählt werden.", "Apps und Docker-Einheiten werden einzeln ausgewählt. Der übergeordnete Compose-Dienst zeigt die mit ihm zu aktualisierenden Abhängigkeiten.", "Nicht verfügbare oder entfernte Ziele werden als veraltet markiert und müssen entfernt werden, bevor die Konfiguration gespeichert werden kann.", "Aktualisierungen anwenden ist lila, wenn ein gewähltes Ziel ein nachgewiesenes Update hat, grün, wenn alle nachweislich aktuell sind, und neutral bei unbekanntem Ergebnis.", "Durch das Entfernen der Bulk-Konfiguration werden keine einzelnen Aktualisierungsmethoden oder Einstellungen für geplante Aktualisierungen entfernt." ], "callout": "Bulk Update ersetzt nicht die einzelnen Buttons. Es ist eine optionale Abkürzung für eine Auswahl, die zusammen laufen sollte." }, "options": { "heading": "Backup- und Neustartoptionen", "lead": "Die gleichen Optionen gelten für manuelle, Massen- und geplante Durchläufe:", "items": [ "Sicherung vor dem Anwenden erstellt ein vzdump-Backup auf dem gewählten Speicher. Schlägt die erforderliche Sicherung fehl, startet die Aktualisierung nicht.", "Neustart nach dem Anwenden startet den LXC nur nach einem erfolgreichen Lauf neu.", "Die Auswahlen werden pro LXC gespeichert und bleiben unabhängig von der Zielliste." ] }, "scheduled": { "heading": "Geplante Updates", "lead": "Geplante Updates verwenden die gleichen ausführbaren Ziele und Sicherheitsoptionen wie manuelle Aktionen.", "items": [ "Wählen Sie einen voreingestellten oder cron-Ausdruck und wählen Sie dann genaue Ziele aus: Betriebssystempakete, einzelne Apps, Docker Engine, eigenständige Docker-Einheiten oder Compose-Dienstgruppen.", "Ein Release Hold gilt nur für ausgewählte Anwendungen mit Versionstracking. Apps ohne Tracking führen ihren Updater immer dann aus, wenn ihr Zeitplan fällig ist.", "Der Zustand des letzten Laufs unterscheidet Erfolg, Teilerfolg, Fehler, Sicherheitsaufschub und keine ausstehenden Updates. Nach dem ersten geplanten Lauf öffnet Aktualisierungen → Geplante Aktualisierungen → Protokoll anzeigen die vollständige Ausgabe des Updaters und seiner aufgerufenen Unterskripte.", "Nach jedem Durchlauf überprüft ProxMenux den standardmäßigen Debian-Reboot-erforderlichen Marker. Wenn ein Neustart erforderlich ist, wird dies auf der Registerkarte Updates und der Abschlussbenachrichtigung angezeigt; die Warnung wird gelöscht, wenn der LXC gestartet oder neu gestartet wird.", "Protokolle geplanter Läufe liegen auf dem Proxmox-Host in /usr/local/share/proxmenux/logs/lxc-updates/ mit dem Namen <VMID>-scheduled-<run-id>.log. Pro LXC bleiben die letzten zehn Protokolle erhalten; ältere Dateien werden automatisch gelöscht.", "Diese beibehaltene Historie gilt für geplante Updates. Ein manuelles Update zeigt seine Ausgabe live im Monitor-Ausführungsfenster an und erstellt kein geplantes Protokoll in diesem Verzeichnis.", "Externe Host-Zeitpläne, die von Proxmox VE Helper-Scripts erkannt wurden, werden separat angezeigt, so dass eine überlappende Automatisierung sichtbar ist." ], "callout": "Führen Sie jede ausgewählte Methode manuell aus, bevor Sie einen Zeitplan aktivieren. Geplante Befehle können keine Eingabeaufforderungen beantworten." }, "completion": { "heading": "Was passiert nach einem Update", "lead": "Das Update gilt nicht als abgeschlossen, wenn der Terminalbefehl lediglich beendet wird.", "items": [ "Derselbe Lauf zeichnet sein Endergebnis auf und aktualisiert den OS-Paketzustand, die registrierten App-Versionen und das Docker-Inventar.", "Geplante Durchläufe behalten ihre Terminalausgabe bei und melden, ob ein Neustart noch erforderlich ist, um die Anwendung von Paketänderungen abzuschließen.", "Der LXC-Cache wird durch den verifizierten Post-Update-Zustand ersetzt, so dass Badges und Buttons das vorherige Ergebnis nicht beibehalten.", "Wenn ein angehaltener oder wiederhergestellter LXC startet, aktualisiert das vorhandene Lebenszyklusereignis diesen LXC erneut. Docker-Inventar wartet, bis der Daemon fertig ist, anstatt ein leeres Startergebnis als endgültig zwischenzuspeichern.", "Aktivierte Benachrichtigungen werden vom finalisierten Durchlauf ausgegeben, einschließlich Teilfehlern und gruppierten Docker-Bildergebnissen." ] }, "troubleshooting": { "heading": "Häufige Situationen", "colProblem": "Situation", "colResolution": "Lösung", "rows": [ { "problem": "Es wurde keine Aktualisierungsmethode identifiziert", "resolution": "Öffnen Sie die Konfiguration, fügen Sie die offizielle nicht-interaktive Prozedur hinzu und testen Sie sie manuell, bevor Sie sie planen." }, { "problem": "Eine Proxmox VE Helper-Scripts-Identität wird angezeigt, aber es gibt keine Aktion", "resolution": "Der LXC hat Legacy-Identifikationsdaten, aber keinen verifizierten /usr/bin/update-Wrapper. Fügen Sie eine benutzerdefinierte Methode erst hinzu, nachdem Sie das korrekte Verfahren bestätigt haben." }, { "problem": "Docker-Bilder sind nach dem Start oder der Wiederherstellung vorübergehend leer", "resolution": "Warten Sie, bis Docker fertig ist, oder drücken Sie jetzt Überprüfen. Das Inventar wiederholt den Start und behandelt ein vorübergehendes leeres Ergebnis nicht als endgültig." }, { "problem": "Ein gespeichertes Bulk-Ziel ist nicht mehr verfügbar", "resolution": "Bearbeiten Sie die Bulk-Konfiguration, entfernen Sie das veraltete Ziel und wählen Sie den aktuellen Ersatz aus, wenn eines vorhanden ist." }, { "problem": "Ein benutzerdefinierter Befehl scheitert", "resolution": "Führen Sie es im LXC-Terminal aus und überprüfen Sie dessen Pfad, Abhängigkeiten, nicht-interaktive Flags und Exit-Code." }, { "problem": "Ein geplantes Update sagt, dass ein Neustart erforderlich ist", "resolution": "Öffnen Sie Protokoll anzeigen, prüfen Sie den abgeschlossenen Lauf und starten Sie den LXC neu. ProxMenux löscht die Warnung, sobald das Lebenszyklusereignis den erneuten Start meldet." } ] }, "figures": { "osPending": { "alt": "Abschnitt Betriebssystempakete mit ausstehenden und Sicherheitsupdates", "caption": "Der Betriebssystembereich hält Paketaktualisierungen unabhängig von Anwendungs- und Docker-Aktionen." }, "options": { "alt": "LXC Update-Optionen mit Pre-Update-Backup und Post-Update-Neustart", "caption": "Backup- und Neustarteinstellungen gelten für manuelle, Massen- und geplante Ausführung." } } }