La mia partizione di avvio è su un SSD, quindi non ha spazio per più di circa 8 versioni del kernel installate e alla fine alcuni aggiornamenti del kernel non verranno installati perché la mia partizione di avvio è piena di vecchie versioni. Ci sono molte domande là fuori su come rimuovere le vecchie versioni (anche su come automatizzare il processo), ma la mia domanda è semplicemente questa:Perché non apt-get autoremove
rilevarli e rimuoverli automaticamente e c'è un modo in cui posso farlo ? Voglio dire, apt-get
è ciò che li ha installati comunque, quindi li conosce, quindi perché sceglie di lasciare tutte le vecchie versioni in giro?
Migliore risposta
Per rispondere al motivo, fare riferimento al file /etc/apt/apt.conf.d/01autoremove-kernels
Come puoi vedere, ad apt viene detto di non rimuovere mai automaticamente i kernel , come indicato da un altro file (script), /etc/kernel/postinst.d/apt-auto-removal
. Ed eccolo qui:
Se installi manualmente 2 kernel scelti, ovvero il primo e quello attuale, apt-autoremove rimuoverà sempre e solo le versioni precedenti che non hai installato manualmente, quindi avrai sempre quelle 2 opzioni più qualunque sia l'ultima.
Aggiornamento:
Nel /etc/kernel/postinst.d/apt-auto-removal
c'è questa parte:
if [ "$latest_version" != "$installed_version" ]
|| [ "$latest_version" != "$running_version" ]
|| [ "$installed_version" != "$running_version" ]
then
# We have at least two kernels that we have reason to think the
# user wants, so don't save the second-newest version.
previous_version=
fi
Quindi, se confronti l'output di 01autoremove-kernels
file e uname -r
ti renderai conto che il kernel attualmente in esecuzione e il più recente precedente non vengono mai rimossi da quello script. Si scopre che c'è un altro file /etc/apt/apt.conf.d/01autoremove
, dove sono presenti le righe:
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
};
VersionedKernelPackages
{
# linux kernels
"linux-image";
"linux-headers";
"linux-image-extra";
"linux-signed-image";
# kfreebsd kernels
"kfreebsd-image";
"kfreebsd-headers";
# hurd kernels
"gnumach-image";
# (out-of-tree) modules
".*-modules";
".*-kernel";
"linux-backports-modules-.*";
# tools
"linux-tools";
};
Quindi potresti commentarli e ti consentirà di rimuovere automaticamente i kernel con apt-autoremove
, però ricorda:fallo a tuo rischio e pericolo