![如何使用 apt-get 更新到最新内核?](https://linux22.com/image/1111744/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20apt-get%20%E6%9B%B4%E6%96%B0%E5%88%B0%E6%9C%80%E6%96%B0%E5%86%85%E6%A0%B8%EF%BC%9F.png)
我当前的内核是 3.2.0-26(我的主计算机),而在我的另一台 Ubuntu 计算机上(我没有使用非官方更新),内核是 3.2.0-30。然而,我主计算机上的更新管理器没有显示可用的内核更新。但它显示了其他更新。
我怀疑这是由于过去我安装了多个主线内核版本(不是推荐的版本),最高到3.5*系列。
我追求的是:要么:修复自动内核更新。要么:了解检查最新官方 ubuntu 内核版本并手动获取的方法(我知道如何从 debs 安装内核)
我已经尝试过:卸载未使用的内核,包括“没有编号的通用内核”,如下所示https://askubuntu.com/a/103875/29347然后还有https://ubuntugenius.wordpress.com/2011/01/08/ubuntu-cleanup-how-to-remove-all-unused-linux-kernel-headers-images-and-modules/
答案1
自动更新的问题可能是由于主线内核或因为您删除了“通用”包。
apt-get
您可以通过如下方式更新到最新内核:
sudo apt-get 更新 sudo apt-get 安装 linux-image-`uname -r`
如果您还需要标头(以编译内核模块,例如无线驱动程序):
sudo apt-get 安装 linux-headers-`uname -r`
答案2
如果你只想更新默认内核,你可以使用以下命令进行修复:
sudo apt-get install linux-image-generic
由于linux-image-generic
始终依赖于发行版的最新默认内核,因此当您运行时,内核会与其余软件包一起升级apt-get upgrade
。
当您想要更新非默认内核时,可以通过运行此脚本来执行此操作:
#!/usr/bin/env bash
sudo apt-get update
kernel_release="$(uname -r | cut --complement -d'.' -f3)"
kernel_release_versions="$(apt-cache search linux-image-${kernel_release})"
kernel_release_versions_generic="$(grep linux-image-"${kernel_release_version}".*-generic <<< "$kernel_release_versions")"
newest_kernel_of_release="$(echo "$kernel_release_versions_generic" | tail -n1 | cut -d' ' -f1 )"
sudo apt-get install $newest_kernel_of_release
sudo apt-get dist-upgrade
如果您还需要头文件,请另外运行以下命令:
newest_kernel_of_release_headers=${newest_kernel_of_release/image/headers}
sudo apt-get install $newest_kernel_of_release_headers
答案3
“您可以通过在 /etc/apt/sources.list 中添加如下一行来使用任何列出的镜像:
德布http://security.ubuntu.com/ubunturaring-security 主页
“
通过
http://packages.ubuntu.com/raring/all/linux-headers-3.8.0-31/download