![如果您重新编译内核,您将如何处理未来的更新?](https://linux22.com/image/993187/%E5%A6%82%E6%9E%9C%E6%82%A8%E9%87%8D%E6%96%B0%E7%BC%96%E8%AF%91%E5%86%85%E6%A0%B8%EF%BC%8C%E6%82%A8%E5%B0%86%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E6%9C%AA%E6%9D%A5%E7%9A%84%E6%9B%B4%E6%96%B0%EF%BC%9F.png)
假设我在 Surface Pro 3 上安装 Ubuntu 并重新编译以解决错误。每次安装更新甚至 LTS 更新时,我是否都必须重新编译内核?
答案1
你可以通过此命令删除元包
sudo apt-get remove linux-image-generic linux-headers-generic
Ubuntu 内核将永远不会得到更新。
此命令不会删除内核,您可以保留 Ubuntu 内核,以防您的自定义内核出现问题。
随着 LTS 版本的发布,内核元包可能会有其他名称。例如,Ubuntu 16.04.2 将有linux-image-generic-lts-yakkety
。
答案2
如果您编译了一个较新的内核,因此其版本号比当前的 Ubuntu 内核更高(例如4.6.6
),您无需执行任何操作,因为系统将继续启动该内核,您可以照常升级所有其他软件包(sudo apt update && sudo apt upgrade
)。当然,您可能会遇到一些兼容性问题。
如果有新的 Ubuntu 版本发布,那么将会跳转到新的内核系列,并且如果新的 Ubuntu 内核的版本号高于您的版本,那么将默认启动较新的 Ubuntu 内核,因此您必须固定您的内核或使用较新的内核。
如果您要重新编译 Ubuntu 内核来修补它,您要么必须在每次内核升级时重新编译(这很常见),要么您可以通过配置 GRUB 来固定或继续选择您的编译版本,直到您愿意重新编译为止。
这种方式的优点是可以让你检查新内核是否在未打补丁的情况下工作。我以前使用自定义内核,但现在我不需要了,因为新内核中已经修复了错误。