以提取 kernel-3.10.0-693.el7.src.rpm 版本的kernel代码为例:

1 什么是完整的源码

最初始的源码加上打了所有的patch后的源码,即最新的源码。

2 提取历程

2.1 从.src.rpm中提取rpm工程文件

cp kernel-3.10.0-693.el7.src.rpm /root/rpmbuild/SOURCES/
cd /root/rpmbuild/SOURCES/
//extract files from cpio
rpm2cpio kernel-3.10.0-693.el7.src.rpm | cpio -iv

2.2 凭据spec文件提取源码

rpmbuild -bp kernel.spec

3 天生的源码所在的位置

//天生的源码位置为安装rpmbuild的BUILD目录下:
/root/rpmbuild/BUILD/kernel-3.10.0-693.el7/

4 如果是提取.rpm文件中的内容

那么就要加上-d参数,用来天生目录,否则报错。

rpm2cpio xxx | cpio -iv -d