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