GNU/Linux >> Znalost Linux >  >> Linux

Linux – Proč Apt Autoremove neodstraní všechny staré balíčky jádra najednou?

Upgradoval jsem jádro našich serverů Ubuntu od chvíle, kdy vydali opravu zranitelnosti Meltdown. Všiml jsem si, že téměř na všech serverech musím po restartu spustit apt autoremove dvakrát, aby vyčistil všechna stará jádra, která jsou stále v systému.

Pokud jej spustím poprvé, odstraní nejprve dvě staré verze jádra:

% 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.

Ale poté, co je hotovo, spustím apt autoremove opět odstraní ještě starší verzi:

% 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.

Zajímalo by mě, proč to nemůže udělat v jednom běhu?

Přijatá odpověď:

Skripty správce jádra, konkrétně /etc/kernel/postinst.d/apt-auto-removal , vytvořte seznam jader, která se mají uchovávat, uložená jako konfigurace APT v /etc/apt/apt.conf.d/01autoremove-kernels . Tento proces uchovává aktuálně spuštěné jádro, konfigurované jádro a dvě nejnovější nainstalovaná jádra.

Pravděpodobně naposledy byl skript spuštěn před vaším prvním čištěním, -96 skončilo chráněné, protože spadalo do jedné z těchto kategorií. Po vašem prvním vyčištění už to nedělalo a stalo se kandidátem na odstranění. Pokud chcete zjistit proč , 01autoremove-kernels soubor obsahuje informace o ladění; Když se na to podíváte před prvním vyčištěním a znovu po něm, měli byste odhalit, proč jsou různé verze jádra chráněny.

Automatické odstranění jádra je záměrně konzervativní a chybuje na straně opatrnosti. S tím se můžete vypořádat automaticky (nakonec) pomocí unattended-upgrades; podrobnosti naleznete na wiki Ubuntu.


Linux
  1. Jak používat příkaz apt ke správě balíčků v systému Linux

  2. Jak vypsat všechny nainstalované balíčky v Linuxu

  3. Proč překladový soubor Bash neobsahuje všechny chybové texty?

  1. Linux – Proč Setuid nefunguje?

  2. Linux – Proč Locale Es_mx funguje, ale Es ne?

  3. Proč „ukončit &“ nefunguje?

  1. Linux – Proč Rsync na Linuxu nezachovává všechna časová razítka (čas vytvoření)?

  2. Proč pr_debug linuxového jádra nedává žádný výstup?

  3. Proč je Bash všude (ve většině, ne-li ve všech distribucích Linuxu)?