为什么“purge-old-kernels”只删除通用头文件包?

为什么“purge-old-kernels”只删除通用头文件包?

我以为我终于找到了一个解决方案,可以解决 apt 不够智能的问题,无法使用“purge-old-kernels”删除不需要的内核/头文件,这要感谢 byobu。它对内核很有效(谢天谢地,因为它的名字里有这个),但对头文件包效果不太好。它似乎只删除了通用包,根本不触及基础包。

例子:

# dpkg -l | grep linux-header
ii  linux-headers-4.4.0-101           4.4.0-101.124                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-103           4.4.0-103.126                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-103-generic   4.4.0-103.126                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-104           4.4.0-104.127                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-104-generic   4.4.0-104.127                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-108           4.4.0-108.131                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-108-generic   4.4.0-108.131                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-109           4.4.0-109.132                              all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-109-generic   4.4.0-109.132                              amd64        Linux kernel headers for version 4.4.0 on 64 bit x86 SMP
ii  linux-headers-4.4.0-75            4.4.0-75.96                                all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-78            4.4.0-78.99                                all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-79            4.4.0-79.100                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-81            4.4.0-81.104                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-83            4.4.0-83.106                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-87            4.4.0-87.110                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-89            4.4.0-89.112                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-91            4.4.0-91.114                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-93            4.4.0-93.116                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-96            4.4.0-96.119                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-97            4.4.0-97.120                               all          Header files related to Linux kernel version 4.4.0
ii  linux-headers-4.4.0-98            4.4.0-98.121                               all          Header files related to Linux kernel version 4.4.0

如您所见,我已在此系统上使用过它,它仅删除了 -generic 包。它似乎运行 apt 来删除包,如下所示:

The following packages will be REMOVED:
  linux-headers-4.4.0-103-generic* linux-headers-4.4.0-104-generic* 
linux-image-4.4.0-103-generic* linux-image-4.4.0-104-generic*
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.

正如您所看到的,它仅删除了标题通用包,而根本没有触及基础包。

有什么方法可以让它也关注这些吗???尝试使用 cron 在相当多的系统中自动执行此操作并尝试使其尽可能简单。谢谢。

答案1

屏风是包含脚本的程序清除旧内核(取自早期的程序)自行车棚

根据 Byobu 维护者 Dustin Kirkland 的说法:

purge-old-kernels 已被弃用,取而代之的是“apt autoremove”。如果您遇到问题,请针对 apt 提交错误报告。

(2017-04-27)https://bugs.launchpad.net/byobu/+bug/1646276

这是一个与该问题类似的错误,也许最好将其描述为功能请求。

因此脚本不会通过以下方式更新屏风,除非由不同的维护者接管。

但是该脚本只有 58 行,在许多系统中位于 /usr/bin/purge-old-kernels。因此,您可以重写简单的awk用于运行的过滤器软件包apt 删除 --purge但你还是得维护自己的脚本。

关于贬值的讨论更多清除旧内核赞成自动删除https://bugs.launchpad.net/ubuntu/+source/byobu/+bug/1686138其中包括对某些情况下发生故障的描述。

关于这个错误的讨论以一种保持两个软件包基本功能的方式结束了,但是并没有解决在某些情况下内核/头文件被错误清除的问题。

相反,Jarno Suni 对这个结果并不满意,他提供了一个更新的(2018 年更新)脚本,名为 linux-purgehttps://launchpad.net/linux-purge。此脚本未打包,但可以通过以下说明使用:https://launchpad.net/linux-purge/+announcement/14752如果将来脚本发生变化,则需要手动更新。

Linux 清除运行命令行图形选择界面(类似于 debian 安装图形命令行),该界面非常详细,包括可能被删除的 linux-header* 和 linux-module* 文件的描述。此脚本可以在非 root 用户下安全运行,使用-s,--模拟在实际进行更改之前,请先试运行选项。

综上所述:清除旧内核脚本只能手动重写,因为它不会更新。请求的内核删除改进可从较新的可手动安装脚本中获得linux 清除

相关内容