GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:perché Apt Autoremove non rimuove tutti i vecchi pacchetti del kernel in una volta?

Ho aggiornato il kernel dei nostri server Ubuntu da quando hanno rilasciato una patch per la vulnerabilità Meltdown. Ho notato che praticamente su tutti i server, dopo il riavvio devo eseguire apt autoremove due volte per ripulire tutti i vecchi kernel che sono ancora sul sistema.

Se lo eseguo la prima volta, all'inizio rimuove due vecchie versioni del kernel:

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

Ma poi, dopo averlo fatto, eseguo apt autoremove di nuovo, rimuove ancora una versione precedente:

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

Mi chiedo, perché non può farlo in una corsa?

Risposta accettata:

Gli script di manutenzione del kernel, in particolare /etc/kernel/postinst.d/apt-auto-removal , crea un elenco di kernel da conservare, archiviato come configurazione APT in /etc/apt/apt.conf.d/01autoremove-kernels . Questo processo mantiene il kernel attualmente in esecuzione, il kernel in fase di configurazione e gli ultimi due kernel installati.

Presumibilmente l'ultima volta che lo script è stato eseguito prima della prima pulizia, -96 è finito protetto perché rientrava in una di quelle categorie. Dopo la tua prima pulizia non ha più funzionato ed è diventato un candidato per la rimozione. Se vuoi capire perché , i 01autoremove-kernels il file contiene informazioni di debug; esaminarlo prima della prima pulizia, e di nuovo dopo, dovrebbe rivelare il motivo per cui varie versioni del kernel sono protette.

La rimozione automatica del kernel è volutamente conservativa ed è un errore sul lato della cautela. Puoi gestirlo automaticamente (eventualmente) usando unattended-upgrades; vedere la wiki di Ubuntu per i dettagli.


Linux
  1. Come elencare tutti i pacchetti installati in Linux

  2. Linux – Perché usiamo Su – e non solo Su?

  3. Perché il file di traduzione Bash non contiene tutti i testi di errore?

  4. Linux – Perché Setuid non funziona??

  5. Linux:perché Locale Es_mx funziona ma non Es?

apt Comando in Linux

Perché Apt-get Autoremove non rimuove i vecchi kernel?

apt comando Linux con esempi

Perché Windows non riconosce i file all'interno delle partizioni Linux?

Perché yum updateinfo non mostra tutti gli aggiornamenti?

Logrotate non rimuove i vecchi registri