我想知道为什么Ubuntu不会自动删除旧的内核。
当然,没有什么是完美的,事情可能会出错,所以如果更新不起作用,保留一个备份内核可能是很好的。但只保留最新的内核和上一个版本,并删除所有旧的内核也足够了。
难道Ubuntu不自动执行这个操作有什么原因吗?
当然,没有什么是完美的,事情可能会出错,所以如果更新不起作用,保留一个备份内核可能是很好的。但只保留最新的内核和上一个版本,并删除所有旧的内核也足够了。
难道Ubuntu不自动执行这个操作有什么原因吗?
apt-get
具有自动删除功能,可以卸载所有不需要作为依赖项并且没有手动安装的软件包。自Ubuntu 14.04以来,所有过时的内核和头文件应自动标记为不再需要,并且可以使用apt-get autoremove命令清除它们。(有报道称这个功能尚未完全实现)我不知道aptitude中是否有类似于apt-get的autoremove功能。
apt-get autoremove
命令。 - Paddy Landaudpkg --get-selections | grep -v deinstall | grep linux
显示已安装三个内核。 - idbriiapt autoremove
是做什么的吗?猜猜看?"OLD"只是指内核的修订版本较低于其他版本。Autoremove会根据/etc/apt/apt.conf.d/01autoremove-kernels
文件,删除相同主要版本的旧版本。从来没有一个系统脚本/二进制文件来处理内核清理,只有APT。因此,你会在谷歌上看到像这个链接(https://help.ubuntu.com/community/RemoveOldKernels#Safely_Removing_Old_Kernels)中提供的1万个答案。我认为这不是最好的管理方式。 - B. Sheaapt autoremove
会删除旧内核。你似乎想纠缠于措辞上的问题。 - B. Shea这里有两件事情正在进行:
新内核是全新的软件包,不是带有更新版本号的已更新软件包,因此安装新内核图像不会替换任何旧版本。它们共存。
Ubuntu 使用一系列 apt 魔术来保护最后两个内核版本免受 'apt-get autoremove' 的影响(最新的版本和上次启动的版本)。有关详细信息,请参阅 /etc/apt/apt.conf.d/01autoremove-kernels。
所有这些意味着一旦您重新启动到最新的内核中,'apt-get autoremove' 将删除除当前和上次启动的内核软件包之外的所有内容。
旧内核仍然在 /boot 中累积,因为 Ubuntu 默认未启用 autoremove - 您必须定期手动运行它,或者必须启用它。
这可能会在 16.04 中发生变化 - 对于unattended-upgrades软件包的bugfix将默认启用旧内核的自动删除。
sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
| xargs ...
部分以检查即将被删除的软件包:sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
。 - PeterMdpkg
前面不需要加上sudo
。 - jarno$ df -i
报告IUse%达到100%:磁盘有剩余空间,但是inode已用尽。$ sudo dpkg --configure -a
失败,$ sudo apt-get -f install
和 $ sudo apt-get autoremove
也都失败。$ rm
或 shift-delete 删除这些文件夹。这样释放了足够的inode空间,使得 $ apt-get -f install
完成。$ sudo apt-get autoremove
,删除了1.4GB的文件。这让人不禁问:真的吗?真的吗?但说实话,这是运行用户友好系统的正确方式吗?dpkg --purge
命令来清除一些内核吗? - jarnosudo apt-get autoremove
sudo apt-get remove (kernels-name)