web-dev-qa-db-ja.com

yum install kernel-develが私のカーネルバージョンと異なる

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

3.12.8-200.fc19.x86_64

ただし、uname -rを実行すると、Fedoraカーネルのバージョンは次のようになります。

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.

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

32

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

$ 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にアクセスする必要がある場合があります。

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

34
slm

配信の同期

あなたの問題は「配布の同期」かもしれません。このコマンドを実行すると問題が解決しました。

yum distro-sync

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

8
redolent

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

yum install kernel-devel-3.9.5-301.fc19

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

5
drs

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

remove kernel-devsにする必要があります:

yum remove kernel-devel

そしてそれを再インストールします:

yum install kernel-devel

そしてthenは魔法のように機能します。

0
Andrea

カーネルを更新した後も同じことに遭遇し、Jimの回答が大いに役立ちました。 [elrepo-kerne]リポジトリを有効にするには、_/etc/yum.repos.d/elrepo.repo_ファイルに移動して、_enabled=1_ではなく_enabled=0_を設定します[elrepo-カーネル]、そしてslmの答えによって通知された更新を行います。その後、_enabled=0_と逆にして、yumがこのリポジトリと対話しないようにします。指摘しておきますが、コマンド_yum repolist all_は、有効なリポジトリと無効なリポジトリをすべて表示します。

0
João Paulo

これがこれを見る他の人を助ける場合...

それが不平を言っている問題がありました

failed dependency not found: kernel-devel-uname-r

質問で述べたように。ランニング

rpm -q kernel-devel

インストールされていることを示し、--providesは適切な情報を表示しましたが、akmodsbuildはまだそれを見つけることができませんでした。

解決:

rpm --rebuilddb

その後、akmodsはすべてのドライバー、nvidiavirtualboxなどを適切に再構築しました。

0
Dave French