编译ceph源码

老版本编译(存在autogen.sh)

1、从github下载源码,要加上–recursive参数,不然ceph源码内的很多子程序无法下载
git clone --recursive https://github.com/ceph/ceph.git
2、选择对应版本,跳到源码根目录,用git tag显示已有的版本,然后git checkout ***跳到我们要编译的版本
3、下载依赖并开始编译
./install-deps.sh
./autogen.sh
./configure
make 
注意:最后make编译的过程中,如果遇到编译器错误,可以添加-j参数指定处理器数量,make -j2
执行make install命令安装到本地,这一步也可以通过手动移动二进制文件和配置文件到相应目录。其中,二进制文件放到/usr/bin,库文件放到/usr/lib,配置文件存入/etc/ceph。

4. 编译代码结束后,进入src目录

root@cci-test3:~/blog/ceph-0.94.3/src/#:MON=1 MDS=0 ./vstart.sh -d -n -x
......
root@cci-test3:~/blog/ceph-0.94.3/src/#:./ceph -s
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
    cluster 05f0dc34-4a98-498a-9e89-06decaba704c
     health HEALTH_OK
     monmap e1: 1 mons at {a=192.168.138.95:6789/0}
            election epoch 2, quorum 0 a
     osdmap e9: 3 osds: 3 up, 3 in
      pgmap v2689: 8 pgs, 1 pools, 0 bytes data, 0 objects
            54178 MB used, 48713 MB / 105 GB avail
                   8 active+clean
root@cci-test3:~/blog/ceph-0.94.3/src/#

  5. 调试集群已经启动成功,可以使用命令停止集群

root@cci-test3:~/blog/ceph-0.94.3/src/# ./stop.sh

  6. 接下来就可以更改代码了,修改代码后可以重新编译,然后启动集群。查看编译后的集群。

osd目录:~/blog/ceph-0.94.3/src/dev/
log目录:~/blog/ceph-0.94.3/src/out/

报错解决

1、运行./autogen.sh报错

libtoolize failed

yum install -y libtool 

2、运行 ./configure 报错

主要是缺少各种依赖库,这里可以执行install-deps.sh的脚本文件来下载各种依赖,即直接执行./install-deps.sh可能就不用一个个安装下面的包了。

具体报的错和分步解决如下:

(1)g++ command could not found

解决:yum install gcc gcc-c++ kernel-devel

(2)configure: error: cython not found

解决:yum install Cython

(3)python-config not found

解决:yum install python-devel

(4ÿ

你可能感兴趣的:(ceph,ceph)