A kernel-header package would contain 'header files' needed by some applications which would 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 would contain the complete source code for the linux kernel, which is needed if you wish 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 includes the C header files that specify the interface
between the Linux kernel and userspace libraries and programs. The
header files define structures and constants that are needed for
building most standard programs and are also needed for rebuilding the
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.
原文:
http://www.linuxquestions.org/questions/linux-software-2/what-are-the-differences-between-kernel-header-and-kernel-devel-929611/
2、轉載2
kernel-header:提供內核的信息,里面也就是內核的頭文件以及Kconfig和Makefile,可以看出,kernel-header 有統領內核的作用,同時,也是內核對外的一個接口,當需要向內核提供兼容的功能模塊時,勢必需要提供內核的信息。所以,在安裝驅動時往往也需要 kernel-header。
由此可見,系統所正在運行的內核必須要與kernel-header版本一致。由於之前的內核為title Fedora (2.6.25-14.fc9.i686),所以沒有成功。后來,通過yum update kernel更新kernel至與kernel-header相應的版本。重新后,新內核生效且是默認內核選項。這里網上有仁兄說了,yum 不是神仙,他只會把網絡上最新的東西給你更新上,所以kernel-header和kernel通過yum安裝,更新的時候務必小心。
原文:http://hi.baidu.com/hallowwar/blog/item/d821842967f791f399250a2a.html
3、轉載3
如果某個程序需要內核提供的一些功能,它就需要內核的C header來編譯程序,這個時候kernel-devel里面的東西就用上了。
比如 nvidia 和 ati 的官方顯卡驅動,alsa-driver 聲卡驅動,他們都需要編譯一個放在內核里面運行的模塊,編譯這個模塊就需要內核的header文件才能順利編譯。
當然,kernel-devel 不光是 C Header 文件,它還有內核的配置文件,以及其他的開發用的資料。
區別:kernel-devel包只包含用於內核開發所需的內核頭文件以及Makefile,而kernel-souce包含所有內核源代碼。
如果僅僅是用你自己編寫的模塊開發的話,因為只需引用相應的內核頭文件,所以只有devel包即可,如果你要修改現有的內核源代碼並重新編譯,那必須是kernel-souce。
kernel-souce在RH某些版本之后不再附帶在發行版中了,必須自己通過kernel-XXX.src.rpm做出來。
kernel-devel是用做內核的一般開發的,比如編寫內核模塊,原則上,可以不需要內核的原代碼。kernel則是專指內核本身的開發,因此需要內核的原代碼。
關於kernel source的有kernel和kernel-devel兩個rpm,其中kernel rpm包含源文件和頭文件(就像2.4下的kernel-source rpm),而kernel-devel則主要是頭文件。