Partisi boot saya menggunakan SSD, sehingga tidak memiliki ruang untuk lebih dari sekitar 8 versi kernel yang diinstal, dan akhirnya beberapa pembaruan kernel akan gagal diinstal karena partisi boot saya penuh dengan versi lama. Ada banyak pertanyaan di luar sana tentang cara menghapus versi lama (bahkan cara mengotomatiskan proses), tetapi pertanyaan saya hanyalah ini:Mengapa tidak apt-get autoremove
mendeteksi dan menghapusnya secara otomatis, dan apakah ada cara agar saya dapat melakukannya ? Maksudku, apt-get
apa yang menginstalnya, jadi ia tahu tentang mereka, jadi mengapa ia memilih untuk meninggalkan semua versi lama?
Jawaban Terbaik
Untuk menjawab alasannya, lihat file /etc/apt/apt.conf.d/01autoremove-kernels
Seperti yang Anda lihat, apt diberitahu untuk tidak pernah menghapus kernel secara otomatis , seperti yang diperintahkan oleh file (skrip) lain, /etc/kernel/postinst.d/apt-auto-removal
. Dan ini dia:
Jika Anda menginstal 2 kernel yang dipilih secara manual, yaitu yang pertama dan yang sekarang, maka apt-autoremove hanya akan menghapus versi lama yang tidak Anda instal secara manual, jadi Anda akan selalu memiliki 2 opsi tersebut ditambah apa pun yang terbaru.
Pembaruan:
Dalam /etc/kernel/postinst.d/apt-auto-removal
ada bagian ini:
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
Jadi jika Anda membandingkan output dari 01autoremove-kernels
file dan uname -r
Anda akan menyadari bahwa kernel yang sedang berjalan dan yang terbaru sebelumnya, disimpan agar tidak pernah dihapus oleh skrip itu. Ternyata ada file lain /etc/apt/apt.conf.d/01autoremove
, di mana ada garis:
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";
};
Jadi Anda dapat mengomentari ini, dan itu akan memungkinkan Anda untuk menghapus kernel secara otomatis dengan apt-autoremove
, meskipun ingat – lakukan ini dengan risiko Anda sendiri