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

Buc*_*cic 22 updates update-manager kernel

我当前的内核是 3.2.0-26(我的主计算机),而在我的另一台 Ubuntu 计算机上,我没有摆弄非官方更新,它是 3.2.0-30。然而,我的主计算机上的更新管理器没有显示可用的内核更新。不过它显示了其他更新。

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

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

我已经尝试过:根据https://askubuntu.com/a/103875/29347https://ubuntugenius.wordpress.com/2011/01/卸载未使用的内核,包括“没有数字的通用内核” 08/ubuntu-cleanup-how-to-remove-all-unused-linux-kernel-headers-images-and-modules/

ish*_*ish 14

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

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

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

如果您还需要头文件(编译无线驱动程序等内核模块):

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

  • 你能解释一下这是做什么的吗?`linux-image-\`uname -r\`` 只是尝试重新安装您已有的内核,那么这有什么用呢? (13认同)
  • 我得到的回报是“linux-image-3.2.0-26-generic 已经是最新版本。” 而实际上并非如此(请参阅原始问题)。你确定你给了我正确的终端命令吗?我不是这方面的专家,但对我来说,这些命令转换为“将内核更新到您已经安装和使用的相同版本”。 (7认同)

Tom*_*örr 7

如果您只想更新默认内核,您应该能够修复它:

sudo apt-get install linux-image-generic
Run Code Online (Sandbox Code Playgroud)

由于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
Run Code Online (Sandbox Code Playgroud)

如果您还需要头文件,请另外运行以下命令:

newest_kernel_of_release_headers=${newest_kernel_of_release/image/headers}

sudo apt-get install $newest_kernel_of_release_headers
Run Code Online (Sandbox Code Playgroud)

  • 我认为 OP 正在寻找最新的主线/稳定内核 (2认同)