GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Warum entfernt Apt Autoremove nicht alle alten Kernel-Pakete auf einmal?

Ich habe den Kernel unserer Ubuntu-Server aktualisiert, seit sie einen Patch für die Meltdown-Schwachstelle veröffentlicht haben. Ich habe das so ziemlich auf allen Servern bemerkt, nach dem Neustart muss ich apt autoremove ausführen zweimal, um alle alten Kernel zu bereinigen, die sich noch auf dem System befinden.

Wenn ich es das erste Mal starte, entfernt es zunächst zwei alte Versionen des Kernels:

% sudo apt autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-4.4.0-103 linux-headers-4.4.0-103-generic linux-headers-4.4.0-104 linux-headers-4.4.0-104-generic linux-image-4.4.0-103-generic linux-image-4.4.0-104-generic
  linux-image-extra-4.4.0-103-generic linux-image-extra-4.4.0-104-generic
0 upgraded, 0 newly installed, 8 to remove and 2 not upgraded.
After this operation, 596 MB disk space will be freed.

Aber dann, nachdem es fertig ist, führe ich apt autoremove aus wieder entfernt es noch eine ältere Version:

% sudo apt autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-4.4.0-96 linux-headers-4.4.0-96-generic linux-image-4.4.0-96-generic linux-image-extra-4.4.0-96-generic
0 upgraded, 0 newly installed, 4 to remove and 2 not upgraded.
After this operation, 298 MB disk space will be freed.

Ich frage mich, warum kann es das nicht in einem Lauf tun?

Akzeptierte Antwort:

Die Betreuerskripte des Kernels, insbesondere /etc/kernel/postinst.d/apt-auto-removal , erstellen Sie eine Liste der zu behaltenden Kernel, gespeichert als APT-Konfiguration in /etc/apt/apt.conf.d/01autoremove-kernels . Dieser Prozess behält den aktuell laufenden Kernel, den konfigurierten Kernel und die zwei zuletzt installierten Kernel bei.

Vermutlich das letzte Mal, als das Skript vor Ihrer ersten Bereinigung ausgeführt wurde, -96 wurde geschützt, weil es in eine dieser Kategorien fiel. Nach Ihrer ersten Reinigung tat es das nicht mehr und wurde ein Kandidat für die Entfernung. Wenn Sie herausfinden möchten, warum , die 01autoremove-kernels Datei enthält Debug-Informationen; Ein Blick vor und nach der ersten Bereinigung sollte zeigen, warum verschiedene Kernel-Versionen geschützt sind.

Die automatische Kernel-Entfernung ist absichtlich konservativ und geht auf Nummer sicher. Sie können dies automatisch (eventuell) mit unattended-upgrades erledigen; Einzelheiten finden Sie im Ubuntu-Wiki.


Linux
  1. So verwenden Sie den apt-Befehl zum Verwalten von Paketen in Linux

  2. So listen Sie alle installierten Pakete in Linux auf

  3. Warum enthält die Bash-Übersetzungsdatei nicht alle Fehlertexte?

  4. Linux – Warum funktioniert Locale Es_mx, aber nicht Es?

  5. Linux – Warum behält Rsync unter Linux nicht alle Zeitstempel (Erstellungszeit) bei?

apt-Befehl unter Linux

Warum entfernt Apt-get Autoremove die alten Kernel nicht?

apt Linux-Befehl mit Beispielen

Warum funktioniert diese Regex nicht unter Linux?

Alle von mir installierten Pakete vollständig entfernen?

Logrotate entfernt keine alten Protokolle