yum installs kernel-devel different from my kernel version

  • 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 and kernel-devel packages through yum 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> ?

    Just curious ... Why aren't you running the latest kernel in Fedora 19?

    Not by a my own decision. I installed from the webiste the latest build that i could. Is there a way to update the kernel?

    Most 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.

  • slm

    slm Correct answer

    7 years ago

    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.

    Why is this better than `yum install "kernel-devel-$(uname -r)"`? From your example, it doesn't even seem to even work...

    @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: http://rpmfusion.org/Howto/nVidia

    This 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

    Is there a way we can make yum/dnf automatically install new kernel headers as well whenever it updates the kernel ?

    @ShankarNarayanan - if you have a new question I encourage you to ask it .

    @slm where can I find any information/documentation on this syntax: `"kernel-devel-uname-r == $(uname -r)"`?

    Is it Fedora-specific or it can work on Centos?

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM