Regarding the differences between kernel-devel, kernel-header, and kernel src,
A kernel-header package wowould contain 'header files' needed by some applications which wocould be built on the target machine, for example modules used by virtualbox or the proprietary nvidia driver.
Http://kernelnewbies.org/KernelHeaders
A kernel-devel package wowould contain the complete source code for the linux kernel, which is needed if you want to recompile the kernel you are currently running.
Example: Fedora, Redhat, CentOS
1) 'kernel-header' package:
Providing/usr/include/linux:/usr/include/asm *, etc. kernel headers.
Description:
Kernel-headers except des the C header files that specify the interface
Between the Linux kernel and userspace libraries and programs.
Header files define structures and constants that are needed
Building most standard programs and are also needed for rebuilding
Glibc package.
2) 'kernel-devel 'package:/usr/src/kernels/'uname-R'/include /*
Description:
This package provides kernel headers and makefiles sufficient to build modules
Against the kernel package.
Original article:
Http://www.linuxquestions.org/questions/linux-software-2/what-are-the-differences-between-kernel-header-and-kernel-devel-929611/
2. reprint 2
Kernel-header: Provides kernel information, which is the kernel header file, as well as Kconfig and Makefile. It can be seen that kernel-header plays a role in guiding the kernel. At the same time, it is also an external interface of the kernel. To provide compatible functional modules to the kernel, it is necessary to provide kernel information. Therefore, the kernel-header is often required when the driver is installed.
It can be seen that the running kernel of the system must be consistent with the kernel-header version. The previous kernel is title Fedora (2.6.25-14. fc9.i686), so it failed. Later, the yum update kernel is used to update the kernel to the version corresponding to the kernel-header. The new kernel takes effect and is the default kernel option. If yum is not a fairy, he will only update the newest on the network, so the kernel-header and kernel are installed through yum, be careful when updating.
Original article: http://hi.baidu.com/hallowwar/blog/item/d821842967f791f399250a2a.html
3. Reprinted 3
If a program requires some functions provided by the kernel, it requires the C header of the kernel to compile the program. At this time, the content in the kernel-devel is used.
For example, nvidia and ati official graphics card drivers and alsa-driver Audio Card Drivers all need to compile a module that runs in the kernel. to compile this module, the kernel header file is required for smooth compilation.
Of course, kernel-devel is not only a C Header file, but also a kernel configuration file and other development materials.
Difference: the kernel-devel package only contains the kernel header file and Makefile required for kernel development, while the kernel-souce contains all kernel source code.
If you only want to develop it using a self-compiled module, you only need to reference the corresponding kernel header file, so only the devel package is available. If you want to modify the existing kernel source code and re-compile it, it must be kernel-souce.
Kernel-souce is no longer included in the release after some RH versions and must be made by yourself through the kernel-XXX.src.rpm.
Kernel-devel is used for general kernel development. For example, to compile a kernel module, in principle, you do not need the original kernel code. Kernel refers to the development of the kernel itself, so the original code of the kernel is required.
There are two rpm for the kernel source: kernel and kernel-devel. The kernel rpm contains the source file and header file (like the kernel-source rpm under 2.4 ), the kernel-devel is mainly a header file.