以提取 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