以提取 kernel-3.10.0-693.el7.src.rpm 版本的kernel代码为例:ide
1 什么是完整的源码
最初始的源码加上打了全部的patch后的源码,即最新的源码。ui
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参数,用来生成目录,不然报错。spa
rpm2cpio xxx | cpio -iv -d