yum installs kernel-devel different from my kernel version
Solution 1
You can install the correct kernel header files like so:
$ sudo yum install "kernel-devel-uname-r == $(uname -r)"
Example
This command will always install the right version.
$ 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
Or you can search for them like this:
$ 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
However I've notice this issue as well where specific versions of headers are not present in the repositories. You might have to reach into Koji to find a particular version of a build.
That page includes all the assets for that particular version of the Kernel.
Solution 2
Distribution Synchronization
Your problem could be "distribution synchronization". Running this command solved my problem.
yum distro-sync
Synchronizes the installed package set with the latest packages available, this is done by either obsoleting, upgrading or downgrading as appropriate. (http://man7.org/linux/man-pages/man8/yum.8.html)
Solution 3
You can install a specific version of a package by specifying the version along with the package name with yum
. For example, to install the kernel development files for the specific kernel you're running, type
yum install kernel-devel-3.9.5-301.fc19
You can do a similar command to get the right kernel-headers
package.
Solution 4
I come across the same thing after update the kernel and Jim's answer helped a lot.
To do enable the [elrepo-kerne] repo, go to /etc/yum.repos.d/elrepo.repo
file and set enabled=1
(rather than enabled=0
) for [elrepo-kernel], then do the update informed by slm's answer.
After that, reverse to the enabled=0
, so that the yum will not interact with this repo.
Just to point out, the command yum repolist all
will show you all enabled and disabled repos.
Related videos on Youtube
![Fantastic Mr Fox](https://i.stack.imgur.com/Inny3.jpg?s=256&g=1)
Fantastic Mr Fox
I am a software engineer and roboticist. Building robots is my thing!
Updated on September 18, 2022Comments
-
Fantastic Mr Fox almost 2 years
I am attempting to install the VMWare player in Fedora 19. I am running into the problem that multiple users have had where VMware player cannot find the kernel headers. I have installed the
kernel-headers
andkernel-devel
packages throughyum
and the file that appears in/usr/src/kernels
is:3.12.8-200.fc19.x86_64
However, when I do
uname -r
my Fedora kernel version is:3.9.5-301.fc19.x86_64
which is a different version. This seems to mean that when I point VMware player at the path of the kernels I get this error:
C header files matching your running kernel were not found. Refer to your distribution's documentation for installation instructions.
How can I install the correct Kernel and where should I be pointing VMware if its not
/usr/src/kernels/<my-kernel>
?-
rickhg12hs over 10 yearsJust curious ... Why aren't you running the latest kernel in Fedora 19?
-
Fantastic Mr Fox over 10 yearsNot by a my own decision. I installed from the webiste the latest build that i could. Is there a way to update the kernel?
-
rickhg12hs over 10 yearsMost keep all the packages current by using the Package Manager or as root executing
yum update
from a command line. Done frequently, and with a decent Internet connection, it doesn't take long, but you've got a bit of catch-up to do. To use the new kernel, you'll need to reboot after the update is done.
-
-
drs over 10 yearsWhy is this better than
yum install "kernel-devel-$(uname -r)"
? From your example, it doesn't even seem to even work... -
slm over 10 years@drs - It doesn't work b/c there aren't any matching pkgs that provide the headers for my kernel version. Using the for -uname-r` is a more portable way of doing work w/ pkgs that are tied to the kernel version. It's used on most repos if you look at their examples too: rpmfusion.org/Howto/nVidia
-
fkl about 10 yearsThis was really helpful. I thought i had installed the correct version of kernel headers, a very small difference in name, but it was not correct and failing to build. Above command helped me got the actual one as well as give me better insight into package search. Thank you +1
-
Shankar Narayanan over 8 yearsIs there a way we can make yum/dnf automatically install new kernel headers as well whenever it updates the kernel ?
-
slm over 8 years@ShankarNarayanan - if you have a new question I encourage you to ask it .
-
Shankar Narayanan over 8 years@slm Thanks. I had asked a similar question few days before. Please find the link here. unix.stackexchange.com/questions/251271/…
-
Vadim Kotov over 6 years@slm where can I find any information/documentation on this syntax:
"kernel-devel-uname-r == $(uname -r)"
? -
Vadim Kotov over 6 yearsIs it Fedora-specific or it can work on Centos?
-
gbox almost 3 yearsFor anyone getting this for Oracle Linux AND using the UEK kernel, the kernel-headers are in a different package (kernel-uek-devel). The correct call for Oracle Linux UEK Kernel is:
sudo yum install "kernel-uek-devel-uname-r == $(uname -r)"