正好失业中,就利用这段时间系统的学习下taobao优化的几个系统级开源项目,先从最基本的linuxkernel开始。
先是参考了http://kernel.taobao.org上的 “编译使用淘宝内核”这篇引导文档,但是其中有些点没有提到。按照淘宝的引导文的顺序前进,中间补充我遇到的问题和解决方法。
首先从github下载淘宝内核树
git clone https://github.com/taobao/taobao-kernel.git
然后切换到6u的分支下(因为博主是在rhel6下编译并且是直接安装到rhel6的)
git checkout -b 6u origin/6u
(如果是要编译安装到rhel5的rpm包则需要切换到5u分支,不过目前github的树上好像已经没有5u这个分支了)
接着利用使用项目中自带的脚本来构建build内核所需要的文件
scripts/package.py [--buildid {number}]
其中buildid参数可选,默认为1,仅是用于管理版本,博主是取了自己的ID前两位FE,然后单数表示rhel上的构建,双数表示centos上的构建,所以本次buildid取2551
执行完成以后,项目目录下会生成taobao-kernel-build目录,包含了所有编译内核所需的文件,切换到该目录下。
这里开始遇到了问题,首先按照淘宝的引导文章执行了rpmbuild,因为source文件夹就在当前目录下,所以与原文的命令略有不同:
rpmbuild -bb kernel.spec --define="_sourcedir ."--define="_builddir ./build" --define="_rpmdir./build/rpms"
执行后会报一串依赖缺失,正常来说应