如何使用apt-get更新到最新内核?


21

我当前的内核是3.2.0-26(我的主计算机),而在我的另一台Ubuntu计算机上,它不是3.非正式的更新,它是3.2.0-30。但是我的主计算机上的更新管理器未显示可用的内核更新。它显示了其他更新。

我怀疑是由于过去我安装了多个主线内核版本(非推荐版本),最多3.5 *系列。

我要做什么:要么:修复内核自动更新。或者:了解一种检查最新官方ubuntu内核版本并手动获取的方法(我知道如何从debs安装内核)

我已经尝试过:卸载未使用的内核,包括“一般一个无号码”按/ubuntu//a/103875/29347然后还https://ubuntugenius.wordpress.com/2011/01/ 08 / ubuntu-cleanup-如何删除所有未使用的Linux内核头文件-图像和模块/

Answers:


14

您的自动更新问题可能是由于主线内核或因为您删除了“通用”软件包。

您可以通过apt-get以下方式更新到最新的内核:

sudo apt-get更新
sudo apt-get install linux-image-`uname -r`

如果还需要头文件(以编译诸如无线驱动程序之类的内核模块):

sudo apt-get install linux-headers-`uname -r`

7
我得到的回报是“ linux-image-3.2.0-26-generic已经是最新版本了”。实际上并非如此(请参阅原始问题)。您确定您给了我正确的终端命令吗?我不是这方面的专家,但对我来说,命令翻译为“将内核更新为您已经安装和使用的相同版本”。
2012年

7
您能解释一下这应该做什么吗?linux-image-`uname -r`只是尝试重新安装您已经拥有的内核,那么它​​在任何方面有什么用?
阿萨德·赛义丁

3

如果您只想更新默认内核,则应该可以使用以下方法进行修复:

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

1
我认为OP正在寻找最新的主线/稳定内核
WinEunuuchs2Unix

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.