生成内核包
Fedora
Fedora的源码包管理系统是RPM。要将内核纳入RPM的管理范围内,就需要生成RPM源码包。
其实Linux内核在创建时就具备生成RPM源码包的功能。编译时需要将rpm-pkg作为对象执行make命令。
$make rpm-pkg
通过这条命令,编译内核后就会创建源码包(SRPM)和二进制码包(RPM),二进制码包存放在~/rpmbuild/rpms下,源码包存放在~/rpmbuild/SRPMS下。
如果拥有将SRPM解压缩后的发布版内核的源码,则使用rpmbuild创建源码包。如果内核的SRPM是解压缩到~/rpmbuild下的,则执行下列命令创建源码包。
$rpmbuild-ba~/rpmbuild/SPECS/kernel.spec
所创建的源码包存放的目录与上面相同。这些源码包和普通源码包一样,可以使用rpm命令来安装、卸载。
小贴士:在上游内核中创建源码包时也是用make来调出rpmbuild的。
Ubuntu
Ubuntu的源码包管理系统是dpkg。源码包为deb格式。
上游内核的创建与RPM同样,也能生成deb源码包。这一make操作的对象为deb-pkg。通过执行下列make命令,就能够创建deb源码包。
$make deb-pkg
所创建的源码包存放在源码树的根目录下。会生成数个源码包,其中包含内核映像和模块的是linux-image-<内核版本>.deb文件。这些源码包的操作和普通的deb源码包文件一样,可以用dpkg来进行。
此外,Ubuntu还在kernel-package包里收录了用来协助内核包创建的工具—make-kpkg命令。这个工具可以通过命令选项对创建操作进行设置,根据需要也可以使用这个工具。这里就不介绍详细的使用方法了。