1 编译ceph
很多人喜欢看代码,但其实光看是很难理解很多细节的东西的,最好的学习代码的方式,就是编译,调试,修改,深入,不停的去迭代。所以学习ceph的源代码,第一步就是编译源代码。我写这篇文章,主要是对官方文档的阐述,并结合自己的理解。每一步里面不一定完全正确,也不一定完全能行得通,有问题可发邮件给我或给我留言,但是对于一些最基本的问题,比如git怎么用,apt-get怎么用之类的问题,我一概拒绝回答,请各自google和百度。
1.1 获取源代码
同现在很多开源软件一样,ceph也使用git,作为代码版本管理软件。因此,显然可以在github上找到(备注:github是一个非常优秀的版本管理网站,任何用户可以注册并免费通过其管理自己的软件项目,不过如果没有付费,项目代码是完全公开的。对于个人开发者,小团队或者创业初期团队,完全可以用其来管理代码,因为平时很少有人会去关注非热点项目,而当开发者觉得需要保护知识产权时,就可以申请付费私有化,价格也不是很贵,一年就几百块钱。),其地址为https://github.com/ceph. 通过浏览器进入后,我们可以发现在ceph的账号下,包含了多个子项目,其中我们主要关注ceph和ceph-client,从分支数和开发者数来看这两个最高,说明一直在维护和开发。Ceph子项目是核心项目,包含了几乎所有的ceph模块,除了ceph-client,这个子项目单独出来实际是为了并入内核的需要。所谓并入内核,也就是说在最新的linux内核里面就包含了这部分代码,这部分主要提供基于ceph的block设备和文件系统功能,虽然目前只是实验项目,但是对ceph的推广是相当有利的。具体步骤可参考http://www.ceph.com/docs/master/install/clone-source/, 总结如下:
1) 安装git
2) 交换ssh-key
3) gitclone --recursive https://github.com/ceph/ceph.git
4) 切换到指定的branch
1.2 具体编译
编译过开源项目的人都知道,每个linux系统安装的原始库都不一样,所以很难一句话说清楚需要装那些库。说句实话,ceph到底需要哪些库,连其官方网站都没有说清楚。唯一的方法就是不停的试,不停的搜。大体步骤如下:
1) 安装最基本的库
apt-getinstall autotools-dev autoconf automake cdbs gcc g++ git libboost-devlibedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-devlinux-kernel-headers libcrypto++-dev libcrypto++ libexpat1-dev pkg-config
2) 寻找差了什么库
cd ceph
./autogen.sh
./configure
make
如果在上述过程中发现有错误,请仔细阅读提示。如果是缺少库,请通过apt-cachesearch 来查找,如果是某个宏定义问题,请结合提示做修改。
3) 如果configure和make都没有错,那么恭喜你,编译成功了。
原文地址:
http://blog.163.com/yandong_8212/blog/static/132153914201412044210857/