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
喜びなく...提案はありますか?
おそらくlinux-headers-generic
というパッケージをインストールする必要があります。
uname -r
を実行すると、バージョン番号の後にgeneric
以外のものが表示される場合は、linux-headers-generic
のgeneric
に置き換えてください。 (これは、いくつかのUbuntuリリースの一部のインストールではserver
またはgeneric-pae
である可能性があり、他にもいくつかのカーネル「フレーバー」があります。)
ドライバーをビルドするためにこれが必要になる可能性が高いため(自動化される場合がありますが、「自分でビルドする」ことはできません)、必要なものがすべて揃うようにbuild-essential
もインストールすることをお勧めしますツール。
私の知る限り、OSにはLinux-kernel-devel
というパッケージはありません。これには2つの理由があります。
Red Hat Package Manager(rpm
)および関連ユーティリティを使用するシステム上のカーネル関連パッケージでは、パッケージ名にkernel
が含まれているのが一般的です。たとえば、Mageiaには パッケージの数 があり、その名前はkernel
で始まりdevel
で終わります。これらのパッケージは、ほとんどの場合(MageiaおよびそれらがインストールされているすべてのOS上)、カーネルで使用するソースからドライバーをビルドするために必要なheader filesを提供します。また、関連するユーティリティを提供することもあります。これらのパッケージ:
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 -r
が3.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-pae
、highbank
、omap
、server
、およびvirtual
。
ヘッダーファイル ヘッダーファイルが使用されているソフトウェアによって提供される機能を使用するソフトウェアの開発とコンパイル/構築を促進します。カーネルヘッダーが必要になる可能性がある最も一般的な理由は、ソースコードからドライバー(カーネルモジュール)をビルドする場合です。 VMwareやVirtualBoxなどの一部のアプリケーションでは、これが必要になる場合があり、ビルド自体を自動化します。
ヘッダーファイルに加えて、ソフトウェアをビルドするには、コンパイラと他のツールが必要です。必要なツールがある可能性を最大限に高めるには、build-essential
パッケージもインストールすることをお勧めします。
誰もが実際の完全なカーネルソースコードを必要とすることはめったにありません(もちろん、ソースからカーネルを構築することを計画している場合を除きます)。ただし、必要な場合は、別のパッケージもインストールする必要があります。 Ubuntuでは、完全なカーネルソースコードのパッケージはlinux-source
と呼ばれます。 (これは、linux
ではなく、Linuxカーネルの実質的な部分kernel
を提供するパッケージの命名に関するDebian/Ubuntuの規則に準拠しています。)
これらのパッケージのいずれかをインストールしようとして問題が発生し、ヘルプが必要な場合は、コマンドを入力した行を含め、ターミナルから完全かつ正確なテキストを含める必要があります。これを提供する最善の方法は、質問を編集することですが、長すぎる場合は http://paste.ubuntu.com のような場所に貼り付けて、可能なURLを提供してください。アクセスします。
この質問にコメントする場合、通知されます。質問を編集し、ここにコメントして、質問で提供した情報に注意を喚起することができます。 (重要な情報は質問と回答に保管するのが最適です。)がんばってください!
レポートが述べたように(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 で、カーネルメインラインのバージョンと長期バージョンを分析できます。
どの特定の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
を使用してビルドツールを用意します。
あなたの走行距離は、あなたが開発ファイルで何をするつもりかにもよりますが。
linux-kernel-develは、genksymsなどを提供するSUSE/Redhatパッケージの名前です。
非常に簡単なGoogleは、linux-headers-genericがDebian/Ubuntuでgenksymsを提供することを提案しています。