【ceph】源码编译总结

  1. 下载代码
  2. 确认已经安装git,然后git init
  3. checkout到自己需要的分支(先切分支,因为各分支代码差异太大,尽量避免下载无用的子库依赖)
  4. git submodule update --init --recursive 下载子库:
    a. 如果失败,可能由于一次请求太多,遇到失败的,可以取消重新执行(已经下载的会跳过)
    b. 某个子库下载报error 35,是因为请求过大,可以调整git配置http.postbuffer=50M
    c. 如果还不行,就到对应目录下,手动git clone子库(不要使用https,使用git);不用管子库分支,等到全部下载完成后,再执行一遍git submodule update --init --recursive 会全部checkout的
    1. ceph代码目录下执行./install-deps.sh,主要是提前安装一些依赖包
      a.遇到systemed-sysusers依赖问题,编辑install-deps.sh,增加–slip-broken参数:$SUDO $builddepcmd --skip-broken $DIR/ceph.spec 2>&1 | tee $DIR/yum-builddep.out
      b. 需要升级gcc:
yum install -y centos-release-scl
yum install -y devtoolset-7
scl enable devtoolset-7 bash  (也可以修改配置,避免每次开个终端都要执行enable)
  1. 开始./do_cmake.sh:
    a. 执行do_cmake.sh
 ./do_cmake.sh -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_SEASTAR=ON -DWITH_MGR_DASHBOARD_FRONTEND=OFF 
(其中参数1,默认是debug模式编译,改为release模式。 参数2,会编译seastar和crimson。 参数3,该组件编译会下载很多node的模块,没什么用所以禁用)
-------- seastar编译问题比较多,怕麻烦可以不开

b. 然后报错,开始补各种依赖库和工具:

b1: 安装cryptopp:yum源没找到最新版本,yum下载的版本太低,手动安装cryptopp860.zip:
	 make libcryptopp.a libcryptopp.so cryptest.exe      make install PREFIX=/usr/local   修改bashrc:PATH=\$PATH:\$HOME/bin:/usr/local/include:/usr/local/lib
b2:安装GnuTLS:较为繁琐,需要安装gmp、nettle、https://blog.csdn.net/Rong_Toa/article/details/107974689
			注意使用这个命令,不要直接./configure,不然需要下载更多的依赖:
				PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig &&
				./configure --enable-shared --with-included-libtasn1 \
				--with-included-unistring --without-p11-kit  &&
				make &&
				make install
b3: 安装cython: pip install Cython
b4:其他各种依赖:cmake-3.18.2-Linux-x86_64.tar.gz、libidn2-2.0.5.tar.gz、lksctp-tools-1.0.17.tar.gz、numactl-2.0.12-5.el7.x86_64.rpm、p11-kit-0.23.14.tar.gz、protobuf-all-3.11.2.tar.gz、yaml-cpp-yaml-cpp-0.7.0.tar.gz
b4:遇到的问题:GnuTLS安装了不识别,在configure的时候加prefix=/usr;yaml-cpp装了不识别,但报found xxx.so,去lib64下的pkgconfig,确认pc文件(库的描述信息)是否存在,不存在就从yaml-cpp/build下拷过去;numa support but numactrl is not avaliable:yum install numactl、yum install numactl-libs、yum install numactl-devel,一般是少了devel
  1. make:
    a. 下载boost太慢,手动下载,拷到/home/ceph/build/boost/src/下面
    b. 因为编译了seastar,但是它各种问题,又回头重新do cmake,去掉seastar
    c. 需要安装pip3,和devel:
yum install python-devel  yum install python3-devel  yum -y install python-pip yum -y install python3-pip
(py2和py3对应的都装了,因为子模块的依赖貌似不一样)

d. 安装virtualenv:pip默认的py2.x,安装时会报错(版本问题),将/usr/bin下的pip链接到pip3,再安装:pip install virtualenv
e. 安装sphinx:yum install python-sphinx,yum install python3-sphinx

其他依赖安装:https://blog.csdn.net/bandaoyu/article/details/121414278

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值