Ubuntu: bestimmte Pakete oder Sicherheitsupdates aktualisieren
Um nur bestimmte auf Ubuntu installierte Pakete zu aktualisieren, verwenden Sie apt install --only-upgrade PACKAGE. Um Sicherheitsupdates auszuwählen, überprüfen Sie die erlaubten Quellen in unattended-upgrades, simulieren Sie das Upgrade und wenden Sie es dann an. Abhängig von den Abhängigkeiten oder Einstellungen der ausgewählten Pakete können auch andere Pakete zusammen geändert werden.
Dinge, die vor dem Update zu überprüfen sind
apt update ruft die Paketliste vom Repository ab, aktualisiert jedoch keine installierten Pakete. Installation und Aktualisierung sind getrennte Aufgaben. Prüfen Sie vor der Anwendung des Updates die Backup- und Wiederherstellungsmethoden, den Speicherplatz und mögliche Serviceunterbrechungen und planen Sie die Ausführungszeit auf Produktionsservern.
sudo apt update
apt list --upgradable
Wenn der erste Befehl fehlschlägt, beheben Sie Repository- und Netzwerkfehler und aktualisieren Sie dann die Liste erneut. Der zweite Befehl zeigt derzeit aktualisierbare Pakete an, aber das bedeutet nicht, dass alle Elemente in der Liste Sicherheitsupdates sind.
Ein bestimmtes Paket aktualisieren
Die folgenden Befehle verwenden curl als Beispiel, wobei angenommen wird, dass es bereits installiert ist. Ersetzen Sie es durch den tatsächlichen Namen des installierten Pakets, das Sie aktualisieren möchten. Überprüfen Sie zunächst die Kandidatversion, die Quelle und die erwarteten Änderungen mit APT.
apt-cache policy curl
sudo apt-get -s install --only-upgrade curl
-s ist ein Testdurchlauf, der die Installation nicht durchführt. --only-upgrade wird das angegebene Paket nicht neu installieren, wenn es noch nicht installiert ist. Es kann jedoch vorschlagen, andere Pakete zu installieren, zu aktualisieren oder zu entfernen, die für das Upgrade des Zielpakets erforderlich sind, daher sollten Sie das gesamte Ergebnis prüfen. Die gewünschte Version wird möglicherweise abhängig von gehaltenen Paketen, Abhängigkeiten und Repository-Priorität nicht ausgewählt.
Wenn die erwarteten Änderungen angemessen sind, wenden Sie sie mit dem folgenden Befehl an. Bestätigen Sie erneut die Liste der Installationen, Aktualisierungen, Entfernungen und Speicherplatzanforderungen, die von APT vorgeschlagen werden, und wenn sie von dem abweichen, was Sie erwarten, stoppen Sie beim Bestätigungsschritt.
sudo apt install --only-upgrade curl
Nach Abschluss überprüfen Sie die installierte Version mit apt-cache policy curl und verifizieren Sie, dass der entsprechende Dienst oder die Anwendung korrekt funktioniert. Abhängig vom Paket kann ein Neustart des Dienstes oder ein Systemneustart erforderlich sein.
Überprüfen Sie die erlaubten Quellen für Sicherheitsupdates
Im Gegensatz zum Namen wählt unattended-upgrade nicht immer nur Sicherheitsupdates aus. Je nach den konfigurierten erlaubten Quellen können auch andere Updates installiert werden. Überprüfen Sie zunächst, ob das Paket installiert ist und die aktuellen APT-Einstellungen vorliegen.
dpkg-query -W unattended-upgrades
apt-config dump | grep -E 'Unattended-Upgrade::(Allowed-Origins|Origins-Pattern|Automatic-Reboot|Remove-)'
apt-cache policy
Wenn es nicht installiert ist, kann es mit sudo apt install unattended-upgrades installiert werden. Nach der Installation kann der automatische Update-Zeitplan aktiviert werden, daher sollten Sie die Serverrichtlinie und die vorhandenen /etc/apt/apt.conf.d/20auto-upgrades-Einstellungen überprüfen. Vergleichen Sie die Repository-Informationen von apt-cache policy mit der erlaubten Liste und überprüfen Sie auch die Einstellungen für automatischen Neustart oder unnötige Paketentfernung. Die Liste kann Werte aus mehreren Konfigurationsdateien kombinieren.
Wenn Quellen außerhalb des Sicherheitsbereichs, wie -updates oder externe Repositories, erlaubt sind, müssen Sie die Einstellungen gemäß der Organisationsrichtlinie anpassen, bevor Sie den folgenden Befehl ausführen. Das ESM-Sicherheits-Repository von Ubuntu Pro und externe Repositories können separate Quellen sein, daher sollten Sie den Unterstützungsbereich und die Quellen prüfen, um sicherzustellen, dass erforderliche Sicherheitspatches nicht verpasst werden. Sie können die Standardquellen und Neustart-Einstellungen im Ubuntu-Dokument zur automatischen Aktualisierung überprüfen.
Beispiel, das nur allgemeine Ubuntu-Sicherheits-Repositorys zulässt
Das Folgende ist eine Beispielkonfiguration, die nur die standardmäßigen Ubuntu-Sicherheits-Repositorys zulässt. Sie enthält weder ESM noch externe Repositorys, daher sollte sie nicht unverändert in Umgebungen angewendet werden, die diese Updates benötigen. Da dies eine persistente Einstellung ist, die auch automatische Updates beeinflusst, notieren Sie Ihre vorhandenen Richtlinien und stellen Sie sicher, dass sie nicht mit anderen Konfigurationsverwaltungstools in Konflikt steht, bevor Sie fortfahren.
Erstellen Sie in /etc/apt/apt.conf.d/ eine neue Datei mit dem Namen 99local-security-only, ohne eine vorhandene Datei zu überschreiben, und speichern Sie den folgenden Inhalt. Die APT-Liste behält vorhandene Einträge bei, wenn nur neue hinzugefügt werden, daher sollten zuerst beide Listen geleert werden. #clear ist eine APT-Konfigurationsdirektive, kein Shell-Prompt.
#clear Unattended-Upgrade::Allowed-Origins;
#clear Unattended-Upgrade::Origins-Pattern;
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Andere Dateien können Quellen später wieder hinzufügen. Daher prüfen Sie nach dem Speichern die tatsächlich erlaubten Quellen mithilfe des obigen apt-config dump und der Dry-Run-Ergebnisse. Das Sicherheits-Repository muss aktiv sein, und falls erforderliche Abhängigkeiten nicht von erlaubten Quellen bezogen werden können, können einige Pakete ausstehend bleiben. Um diese Konfiguration rückgängig zu machen, entfernen Sie lediglich die durch diesen Vorgang erstellte Datei und überprüfen erneut die Konfiguration und die Dry-Run-Ergebnisse.
Dry-Run und Nachanwendungsprüfung
Der folgende Befehl wird verwendet, um die erlaubten Quellen und zu verarbeitenden Pakete zu prüfen, ohne tatsächlich Updates zu installieren. Überprüfen Sie die Ausgabe und Protokolle auf unerwartete Quellen, ausstehende Elemente und Fehler.
sudo unattended-upgrade --dry-run --debug
Die Ausführung der Simulation garantiert nicht die Ergebnisse der tatsächlichen Arbeit. Überprüfen Sie die Quelle und das Ziel, die Richtlinien für automatisches Neustarten/Entfernen, und führen Sie den folgenden Befehl nur während eines geeigneten Wartungsfensters aus.
sudo unattended-upgrade --verbose
Überprüfen Sie nach Abschluss die Protokolle in /var/log/unattended-upgrades/ und den Status der betroffenen Dienste, und starten Sie falls nötig zum geplanten Zeitpunkt neu. Das Auskommentieren von Repositories in sources.list kann andere Quelldateien und Abhängigkeiten übersehen, daher wird diese Methode hier nicht verwendet. Für Optionen und Protokollpfade siehe Ubuntu-Handbuch zu unattended-upgrade.




