在我的笔记本电脑上,我闲置了好几 GB 的旧内核,其软件包名称包括 linux-image-some_number-generic、linux-image-extra-some_number-generic、linux-headers-some_number、linux-headers-some_number-generic。我想删除这些旧内核,但要“安全”地删除,以免无意中破坏我的系统。更具体地说,我想使用软件包管理器资质。
我第一次发现,从这个问题“包“设置为手动安装”是什么意思?',aptitude 不会删除这些旧内核,因为它们是“手动”安装的。此标志可以轻松更改为“自动”标志,我就是这么做的。但无论如何,aptitude 都不会删除旧内核。
在尝试弄清楚为什么 aptitude 不会删除这些包时,我遇到了一个问题'我可以看到安装这个包的原因吗?'. 运行命令
aptitude why linux-image-some_number-generic
给了我输出
i nautilus Suggests totem | mp3-decoder
p vlc-nox Provides mp3-decoder
p vlc-nox Depends libcrystalhd3
p libcrystalhd3 Suggests firmware-crystalhd
p firmware-crystalhd Suggests linux-image
i A linux-image-some_number-generic Provides linux-image
看来 linux-image-some_number-generic 软件包提供了“linux-image”,这是我甚至没有安装的软件包所建议的!
apt-get 似乎并不介意删除旧内核(另见对问题“aptitude 是否仍然被认为优于 apt-get?'). 运行命令
sudo apt-get autoremove
产生所需的结果;apt-get 询问我是否要删除所有标记为“自动”的软件包。
我的问题如下:如何让 aptitude 删除这些软件包以确保没有依赖关系被破坏?
编辑:以下未回答的问题似乎相关:Aptitude 与 apt-get 冲突. 编辑:以下问题可能也相关:aptitude ugrade 不会改变我的内核。编辑:我在 unix stackexchange 上发现了一个可能相关的问题:Aptitude 不会删除自动安装的软件包。