web-dev-qa-db-ja.com

apt-getを使用して最新のカーネルに更新するにはどうすればよいですか?

現在のカーネルは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/

20
Bucic

自動更新の問題は、メインラインカーネルまたは「ジェネリック」パッケージを削除したことが原因である可能性があります。

次のようにapt-get経由で最新のカーネルに更新できます。

 sudo apt-get update 
 sudo apt-get install linux-image-`uname -r` 

ヘッダーも必要な場合(ワイヤレスドライバーなどのカーネルモジュールをコンパイルするため):

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

デフォルトのカーネルのみを更新したい場合は、次の方法で修正できます。

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
2
user6105651