12.04.2 LTS 3.5.0で同等のlinux-kernel-develとは何ですか?


14

noobの質問はおaびしますが、

sudo apt-get install Linux-kernel-devel 

私は次のようになります:

sudo apt-get install linux-kernel-devel  
Reading package lists... Done  
Building dependency tree        
Reading state information... Done  
E: Unable to locate package linux-kernel-devel  

私は次を試しました:

sudo apt-get install linux-headers-$(uname -r)  
sudo apt-get install build-essentials  
sudo apt-get install Linux-headers-generic 

喜びなく...提案はありますか?


2
パッケージlinux-kernel-develに何を期待しますか?ヘッダーなどを探していますか?
ロビーバサック

回答:


15

エグゼクティブサマリー

おそらく、というパッケージをインストールする必要がありますlinux-headers-generic

実行中にバージョン番号の後uname -r以外のものが表示される場合genericは、genericin に置き換えてください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 -r3.5.0-36-genericgeneric

次に、linux-headers-*where *と呼ばれるパッケージをインストールし、その部分に置き換えます。したがって、私のシステムlinux-headers-genericでは、次のように実行できます。

sudo apt-get update && sudo apt-get install linux-headers-generic

ほとんどの人にとってはあるlinux-headers-genericが、それがインストールされ、構成されているどのようにUbuntuのは、あなたがそれを実行しているデバイスのどのようなアーキテクチャと種類、あなたが実行している解放し、ものに応じて、他の可能性が含まれgeneric-paehighbankomapserver、とvirtual

関連パッケージ

ヘッダーファイルは、ヘッダーファイルが使用されているソフトウェアによって提供される機能を使用するソフトウェアの開発とコンパイル/構築を容易にします。カーネルヘッダーが必要になる可能性がある最も一般的な理由は、ソースコードからドライバー(カーネルモジュール)をビルドする場合です。VMwareやVirtualBoxなどの一部のアプリケーションでは、これが必要になる場合があり、ビルド自体を自動化します。

ヘッダーファイルに加えて、ソフトウェアをビルドするには、コンパイラと他のツールが必要です。必要なツールがある可能性を最大限に高めるには、build-essentialパッケージもインストールすることをお勧めします。

誰もが実際の完全なカーネルソースコードを必要とすることはめったにありません(もちろん、ソースからカーネルを構築することを計画している場合を除きます)。ただし、必要な場合は、別のパッケージもインストールする必要があります。Ubuntuでは、完全なカーネルソースコードのパッケージはと呼ばれlinux-sourceます。(これは、Linuxカーネルの実質的な部分を提供するパッケージの名前付けののDebian / Ubuntuの規則と一致しているlinuxのではなくをkernel。)

それでも問題が解決しない場合

これらのパッケージのいずれかをインストールしようとして問題が発生し、ヘルプが必要な場合は、コマンドを入力した行を含めて、ターミナルから完全かつ正確なテキストを含める必要があります。これを提供する最善の方法は、質問を編集することですが、長すぎる場合は、http://paste.ubuntu.comのような場所に貼り付けて、アクセスできるURLを提供してください。

この質問にコメントすると、通知されます。質問を編集し、ここにコメントして、質問で提供した情報に注意を喚起することができます。(重要な情報は質問と回答に保管するのが最適です。)幸運を祈ります!


0

レポートが述べたように(E:パッケージlinux-kernel-develが見つかりません)そのようなパッケージはありません。ここからdebianカーネルパッケージをダウンロードして、必要なすべてのカーネルバージョンをインストールできます。

例えば; カーネル3.9.8(i386アーキテクチャ)をインストールします。すべての** i386.debパッケージをダウンロードし、* * * all.debパッケージもフォルダーにダウンロードします。ターミナルでcdコマンドを使用してフォルダーにアクセスします。

sudo dpkg -i *.deb
sudo update-grub2
sudo reboot

これにより、必要なカーネルバージョンがインストールされます。このサイトでは、カーネルメインラインのバージョンと長期バージョンを分析できます。


0

必要な特定のdebを自分でマップする必要がありますが、Ubunutのカーネルビルドには必要なdebがあります

正直に言って、最初に確認しsudo apt-get updatesudo apt-get dist-upgradeから、最新のカーネルを実行していることを確認し、すぐにこれを行う必要はありません。

次に、お使いのバージョンに一致するバージョンのカーネルビルドリストを確認しますuname -r。各ビルドbuild.logを調べて、そのビルドがマッピングされているヘッドバージョンを確認する必要があります。カーネルとして3.5.0-34#55をリストしていますが、これは実際に3.5.7.14-quantalをビルドするためにマップされます。そのバージョンに対応するすべてのデバッグをインストールしてヘッダーなどを取得し、ビルドツールを持っていることを確認してくださいsudo apt-get install build-essential

あなたの走行距離は、あなたが開発ファイルで何をするつもりかによって非常に異なります。


0

linux-kernel-develは、genksymsなどを提供するSUSE / Redhatパッケージの名前です。

非常に簡単なGoogleは、linux-headers-genericがDebian / Ubuntuでgenksymsを提供することを提案しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.