web-dev-qa-db-ja.com

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

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 

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

14
paschwan

エグゼクティブサマリー

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

uname -rを実行すると、バージョン番号の後にgeneric以外のものが表示される場合は、linux-headers-genericgenericに置き換えてください。 (これは、いくつかのUbuntuリリースの一部のインストールではserverまたはgeneric-paeである可能性があり、他にもいくつかのカーネル「フレーバー」があります。)

ドライバーをビルドするためにこれが必要になる可能性が高いため(自動化される場合がありますが、「自分でビルドする」ことはできません)、必要なものがすべて揃うようにbuild-essentialもインストールすることをお勧めしますツール。

完全な説明

私の知る限り、OSにはLinux-kernel-develというパッケージはありません。これには2つの理由があります。

  • UnixライクなOSでは、大文字で始まるパッケージ名は非常にまれです。
  • GNU/Linuxオペレーティングシステムは通常、カーネル関連パッケージに名前を付けて、名前にWord kernelまたはWord linuxが含まれますが、両方は含まれません。 (Ubuntuでは、Word linuxです。)

Red Hat Package Manager(rpm)および関連ユーティリティを使用するシステム上のカーネル関連パッケージでは、パッケージ名にkernelが含まれているのが一般的です。たとえば、Mageiaには パッケージの数 があり、その名前はkernelで始まりdevelで終わります。これらのパッケージは、ほとんどの場合(MageiaおよびそれらがインストールされているすべてのOS上)、カーネルで使用するソースからドライバーをビルドするために必要なheader filesを提供します。また、関連するユーティリティを提供することもあります。これらのパッケージ:

  • do notカーネルの完全なソースコードを提供します。それは他のパッケージによって提供されます。
  • do notコンパイル済みの使用可能なカーネルを提供します。それは他のパッケージによって提供されます。
  • do notコンパイラまたは他のほとんどの目的のビルドツールを提供します。これらも、他のパッケージによって提供されます。

Ubuntuでは、 ここのリストにある からわかるように、カーネルヘッダーを提供するパッケージの名前はlinux-headersで始まります。通常、インストールする正しいパッケージはlinux-headers-genericです。ただし、現在実行中のカーネルに対応するヘッダーを取得するためにインストールするパッケージを確認するには、次を実行します。

uname -r

次のような出力が得られます。

3.5.0-36-generic

つまり、バージョン番号(.文字と通常少なくとも1つの-を含む)があり、その後に-が続き、実行しているカーネルの種類を示す1つ以上の単語が続きます。

just現在実行している特定のバージョンのヘッダーが必要な場合は、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`

これらのアプローチは同等ですが、通常は最適な方法ではありません。

代わりに、通常、常に最新のカーネルヘッダーを更新として提供する metapackage をインストールします(最新のヘッダーパッケージに常に依存します)。これは、コンパイルされた実行中のカーネルがインストールされ、更新される方法に対応しています。これを行うには、uname -rの出力の一部だけを見てくださいafterバージョン番号。つまり、uname -r3.5.0-36-genericを提供する場合は、genericの部分だけを使用します。

次に、linux-headers-*というパッケージをインストールします。ここで、*はその部分に置き換えられます。したがって、私のシステムでは、linux-headers-genericになります。インストールする方法の1つは、次のコマンドを実行することです。

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ではなく、Linuxカーネルの実質的な部分kernelを提供するパッケージの命名に関するDebian/Ubuntuの規則に準拠しています。)

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

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

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

15
Eliah Kagan

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

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

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

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

0
ubuntu_tr

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

正直なところ、最初にSudo apt-get updateをチェックし、次にSudo apt-get dist-upgradeをチェックして、最新のカーネルを実行していることを確認します。すぐにこれを行う必要はありません。

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

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

0
Kallor

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

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

0
Tim Baverstock