エグゼクティブサマリー
おそらく、というパッケージをインストールする必要がありますlinux-headers-generic
。
実行中にバージョン番号の後uname -r
以外のものが表示される場合generic
は、generic
in に置き換えてくださいlinux-headers-generic
。(これはあるかもしれないserver
か、generic-pae
いくつかのUbuntuのリリースの一部のインストールについて、およびその他のいくつかの時折のカーネルがある「の味は。」)
ドライバーをビルドするためにこれが必要になる可能性が高いため(自動化される場合がありますが、「自分でビルドする」ことはできません)、build-essential
必要なツールがすべて揃っているため、インストールすることをお勧めします。
完全な説明
私の知る限り、オペレーティングシステムにはと呼ばれるパッケージはありませんLinux-kernel-devel
。これには2つの理由があります。
- UnixライクなOSの場合、大文字で始まるパッケージ名は非常にまれです。
- GNU / Linuxオペレーティングシステムは通常、カーネル関連パッケージに名前を付けて、名前にkernelまたはlinuxという単語が含まれますが、両方は含まれません。(Ubuntuでは、単語linuxです。)
Red Hat Package Manager(rpm
)および関連ユーティリティを使用するシステム上のカーネル関連パッケージkernel
は、パッケージ名に含まれているのが一般的です。たとえば、Mageiaには、名前がで始まり、kernel
で終わるパッケージが多数ありますdevel
。これらのパッケージは、ほとんどの場合(MageiaおよびそれらがインストールされているOS上)、カーネルで使用するソースからドライバーをビルドするために必要なヘッダーファイルを提供します。また、関連するユーティリティを提供して容易にすることもできます。これらのパッケージ:
- カーネルの完全なソースコードを提供しないでください。それは他のパッケージによって提供されます。
- プリコンパイル済みの使用可能なカーネルを提供しないでください。それは他のパッケージによって提供されます。
- コンパイラまたはその他のほとんどの目的のビルドツールは提供しません。これらも、他のパッケージによって提供されます。
Ubuntuでは、ここのリストにあるように、カーネルヘッダーを提供するパッケージの名前はで始まりlinux-headers
ます。通常、インストールする正しいパッケージはlinux-headers-generic
です。ただし、現在実行中のカーネルに対応するヘッダーを取得するためにインストールするパッケージを確認するには、次を実行します。
uname -r
次のような出力が得られます。
3.5.0-36-generic
つまり、バージョン番号(.
文字と通常少なくとも1つを含む-
)があり、その後に、-
実行しているカーネルの種類を示す1つ以上の単語が続きます。
現在実行している特定のバージョンのヘッダーだけが必要な場合は、名前がlinux-headers-*
であるパッケージをインストール*
し、の完全な出力で置き換えますuname -r
。たとえば、私のシステムでは、次を実行できます。
sudo apt-get update && sudo apt-get install linux-headers-3.5.0-36-generic
自動化することもできます。
sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
これらのアプローチは同等ですが、通常は最善の方法ではありません。
代わりに、通常、常に最新のカーネルヘッダーを更新として提供するメタパッケージをインストールします(常に最新のヘッダーパッケージに依存します)。これは、コンパイルされた実行中のカーネルがインストールされ、更新される方法と似ています。これを行うには、バージョン番号の後uname -r
のの出力の部分だけを見てください。つまり、もしあなたが与えるなら、その役割を担ってください。uname -r
3.5.0-36-generic
generic
次に、linux-headers-*
where *
と呼ばれるパッケージをインストールし、その部分に置き換えます。したがって、私のシステムlinux-headers-generic
では、次のように実行できます。
sudo apt-get update && sudo apt-get install linux-headers-generic
ほとんどの人にとってはあるlinux-headers-generic
が、それがインストールされ、構成されているどのようにUbuntuのは、あなたがそれを実行しているデバイスのどのようなアーキテクチャと種類、あなたが実行している解放し、ものに応じて、他の可能性が含まれgeneric-pae
、highbank
、omap
、server
、とvirtual
。
関連パッケージ
ヘッダーファイルは、ヘッダーファイルが使用されているソフトウェアによって提供される機能を使用するソフトウェアの開発とコンパイル/構築を容易にします。カーネルヘッダーが必要になる可能性がある最も一般的な理由は、ソースコードからドライバー(カーネルモジュール)をビルドする場合です。VMwareやVirtualBoxなどの一部のアプリケーションでは、これが必要になる場合があり、ビルド自体を自動化します。
ヘッダーファイルに加えて、ソフトウェアをビルドするには、コンパイラと他のツールが必要です。必要なツールがある可能性を最大限に高めるには、build-essential
パッケージもインストールすることをお勧めします。
誰もが実際の完全なカーネルソースコードを必要とすることはめったにありません(もちろん、ソースからカーネルを構築することを計画している場合を除きます)。ただし、必要な場合は、別のパッケージもインストールする必要があります。Ubuntuでは、完全なカーネルソースコードのパッケージはと呼ばれlinux-source
ます。(これは、Linuxカーネルの実質的な部分を提供するパッケージの名前付けののDebian / Ubuntuの規則と一致しているlinux
のではなくをkernel
。)
それでも問題が解決しない場合
これらのパッケージのいずれかをインストールしようとして問題が発生し、ヘルプが必要な場合は、コマンドを入力した行を含めて、ターミナルから完全かつ正確なテキストを含める必要があります。これを提供する最善の方法は、質問を編集することですが、長すぎる場合は、http://paste.ubuntu.comのような場所に貼り付けて、アクセスできるURLを提供してください。
この質問にコメントすると、通知されます。質問を編集し、ここにコメントして、質問で提供した情報に注意を喚起することができます。(重要な情報は質問と回答に保管するのが最適です。)幸運を祈ります!