yumは、カーネルバージョンとは異なるkernel-develをインストールします


32

Fedora 19にVMWareプレーヤーをインストールしようとしています。VMwareプレーヤーがカーネルヘッダーを見つけられないという複数のユーザーの問題に直面しています。kernel-headerskernel-develパッケージをインストールしyumました/usr/src/kernelsが、表示されるファイルは次のとおりです。

3.12.8-200.fc19.x86_64

ただし、uname -rFedoraカーネルバージョンを実行すると、

3.9.5-301.fc19.x86_64

これは異なるバージョンです。これは、カーネルのパスでVMwareプレーヤーをポイントすると、次のエラーが発生することを意味するようです:

C header files matching your running kernel were not found.  
Refer to your distribution's documentation for installation instructions.

正しいカーネルをどのようにインストールでき/usr/src/kernels/<my-kernel>ますか?また、VMwareを指定しない場合はどこにポイントすればよいですか?


好奇心が強い... Fedora 19で最新のカーネルを実行していないのはなぜですか?
rickhg12hs 14年

私自身の決定ではありません。Webisteから最新のビルドをインストールしました。カーネルを更新する方法はありますか?
ファンタスティック氏フォックス14年

ほとんどの場合、パッケージマネージャーを使用するかyum update、コマンドラインから実行されるルートとして、すべてのパッケージを最新の状態に保ちます。頻繁に行われ、適切なインターネット接続があれば、それは長くはかかりませんが、少し追いつく必要があります。新しいカーネルを使用するには、更新が完了した後に再起動する必要があります。
rickhg12hs 14年

回答:


33

次のように正しいカーネルヘッダーファイルをインストールできます。

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"

このコマンドは常に正しいバージョンをインストールします。

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
No package kernel-devel-uname-r == 3.12.6-200.fc19.x86_64 available.
Error: Nothing to do

または、次のように検索できます。

$ yum search "kernel-headers-uname-r == $(uname -r)" --disableexcludes=all
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Warning: No matches found for: kernel-headers-uname-r == 3.12.6-200.fc19.x86_64
No matches found

ただし、特定のバージョンのヘッダーがリポジトリに存在しない場合にもこの問題に気付きました。ビルドの特定のバージョンを見つけるには、Kojiにアクセスする必要がある場合があります。

そのページには、カーネルの特定のバージョンのすべてのアセットが含まれています。


2
なぜこれが優れているのyum install "kernel-devel-$(uname -r)"ですか?あなたの例から、それも...でも動作するようには思えない
DRS

1
@drs-カーネルバージョンのヘッダーを提供する一致するpkgが存在しないため、機能しません。for -uname-r`を使用すると、カーネルバージョンに関連付けられたpkgを使用した作業をよりポータブルに実行できます。例を参照すると、ほとんどのリポジトリで使用されます:rpmfusion.org/Howto/nVidia
slm

これは本当に役に立ちました。カーネルヘッダーの正しいバージョンをインストールしましたが、名前の違いは非常にわずかでしたが、正しくなく、ビルドに失敗しました。上記のコマンドは、実際のパッケージを取得するのに役立ち、パッケージ検索についてのより良い洞察を与えてくれました。ありがとう+1
fkl 14

カーネルを更新するたびにyum / dnfに新しいカーネルヘッダーを自動的にインストールさせる方法はありますか?
シャンカールナラヤナン

2
@slmこの構文に関する情報/ドキュメントは"kernel-devel-uname-r == $(uname -r)"どこにありますか?
ヴァディムコトフ

8

配布の同期

問題は「配布の同期」である可能性があります。このコマンドを実行すると問題が解決しました。

yum distro-sync

インストールされたパッケージセットを利用可能な最新のパッケージと同期します。これは、必要に応じて、廃止、アップグレード、またはダウングレードすることによって行われます。(http://man7.org/linux/man-pages/man8/yum.8.html


4

パッケージの特定のバージョンをインストールするには、パッケージ名とともにバージョンを指定しyumます。たとえば、実行している特定のカーネルのカーネル開発ファイルをインストールするには、次のように入力します

yum install kernel-devel-3.9.5-301.fc19

同様のコマンドを実行して、適切なkernel-headersパッケージを取得できます。


0

システムの更新後にVMBoxAdditionsをインストールすることもあります。

kernel-devs を削除する必要があります。

yum remove kernel-devel

その後、再インストールします。

yum install kernel-devel

そして魔法のように動作します。


0

カーネルを更新した後、私は同じことを見つけました。Jimの答えは大いに役立ちました。[elrepo-kerne]リポジトリを有効にするには、/etc/yum.repos.d/elrepo.repoファイルに移動して[elrepo-kernel]のenabled=1(ではなくenabled=0)を設定し、slmの回答で通知された更新を行います。その後、yumがこのレポと対話しないように、に逆にします。指摘するために、このコマンドは有効なリポジトリと無効なリポジトリをすべて表示します。enabled=0yum repolist all


-2

皆の提案に従った後、私はこれを修正するのに役立つ1つの事を見つけました。[elrepo-kernel]リポジトリを有効にする必要がありました。その後、正しいヘッダーとkernel-develをインストールできました


これは質問に対する完全な答えではありません。より詳細に回答を改善するか、これをコメントとして追加する必要があります。
ファンタスティックMr. Fox

@FantasticMrFoxこれは質問への回答です。ただし、この手順がなぜ必要なのかについての説明はありませんが、他の人がすでに言ったことと重複しています。
クサラナナンダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.