Ceph编译:L版本及其之后的版本。

1. 编译前准备

下载代码库

git clone git://github.com/ceph/ceph.git all

或者

git clone --recursive https://github.com/ceph/ceph.git

假如想看v13.2.2的代码

只clone一个分支的:

git clone -b v10.2.5 --single-branch git://github.com/ceph/ceph.git single

如果想看v13.2.2分支最后提交的代码:

git clone -b v10.2.5 --single-branch --depth 1 git://github.com/ceph/ceph.git singledep1

使用install-deps.sh解决编译过程中的依赖。首先要解决install-deps执行个安装依赖包很慢的问题:

提前准备好eple:

yum install http://mirrors.aliyun.com/epel/7/x86_64/e/epel-release-7-8.noarch.rpm

rm -rf /etc/yum.repos.d/epel*

装完了删除,这个是为了绕过包验证

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

删除慢速的 aliyuncs:

sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo

install-deps.sh第72行的需要修改需要修改成aliyun的:

sed -i 's/https:\/\/dl.fedoraproject.org\/pub\//https:\/\/mirrors.aliyun.com\//g' install-deps.sh

同时还要将

$SUDO yum install --nogpgcheck -y epel-release

注释掉,否则还是会安装fedoraproject的epel。

2. 开始编译

2.1

社区已经考虑到Centos下的gcc、cmake版本比较低,不支持C++17,因此在install-deps.sh中处理:

yum install centos-release-scl

yum install devtoolset-7

scl enable devtoolset-7 bash

也可以选择安装devtoolset-8

这样,就可以使用高版本的cmake和gcc了。也就是使用的开发环境,不影响机器上的运行gcc、cmake版本。

2.2 修改do_cmake.sh

注释掉原来的命令,如下:

#cmake -DBOOST_J=$(nproc) $ARGS "$@" ..

添加新的cmake命令参数:

cmake -DCMAKE_C_FLAGS="-O0 -g3 -gdwarf-4" -DCMAKE_CXX_FLAGS="-O0 -g3 -gdwarf-4" -DBOOST_J=$(nproc) $ARGS "$@" ..

解释以上参数的含义:

CMAKE_C_FLAGS=“-O0 -g3 -gdwarf-4” : c 语言编译配置

CMAKE_CXX_FLAGS=“-O0 -g3 -gdwarf-4” :c++ 编译配置

-O0 : 关闭编译器的优化,如果没有,使用GDB追踪程序时,大多数变量被优化,无法显示, 生产环境必须关掉

-g3 : 意味着会产生大量的调试信息

-gdwarf-4 : dwarf 是一种调试格式,dwarf-4 版本为4

进入ceph源码的目录执行

bash do_cmake.sh

这个步骤会创建一个叫build的目录。

进入到build目录

cd build

执行cmake . -LH  查看下ceph有哪些编译选项,根据自己的需要来选择

执行

cmake .. -DWITH_LTTNG=OFF -DWITH_RDMA=OFF -DWITH_FUSE=OFF -DWITH_DPDK=OFF -DCMAKE_INSTALL_PREFIX=/usr

执行make –j8编译源码

执行make install编译安装源码

生成vstart脚本:

cd build

make vstart

ceph编译_Ceph编译:L版本及其之后的版本相关推荐

  1. ceph编译_Ceph编译安装教程

    Ceph官方版本目前支持的纠删码很有限,实验室这块希望能够整合我们自主开发的纠删码BRS(Binary Reed–Solomon encoding),所以需要编译Ceph环境.Ceph官方目前推荐的安 ...

  2. Ceph源码编译和调试vstart版本(一)

    ceph调试环境及版本 ubuntu18.04 ceph v14.2.22 ceph调试源码部署一个完整集群,使用ceph源码vstart脚本部署. 1.克隆源码仓库 git clone --recu ...

  3. ceph编译_ceph源代码编译

    当前生产环境中我们所使用的ceph版本为jewel版本: # ceph --version ceph version 10.2.10 (5dc1e4c05cb68dbf62ae6fce3f0700e4 ...

  4. CEPH iSCSI GateWay 编译部署安装

    参考链接: https://docs.ceph.com/en/latest/rbd/iscsi-overview/ https://www.enterprisestorageforum.com/sto ...

  5. 编译包含Google Play服务App的SDK版本问题

    编译包含Google Play服务App的SDK版本问题 错误信息:No Resouce identifier found for attribute 'touchscreen BlocksFocus ...

  6. RN Error: 无法获取此包的编译时间戳。请更新react-native-update到最新版本后重新打包上传。

    老项目:RN 0.44.0 react-native-update 4.0.6 注意:如果网不行那得开4G或者5G 之前热更新的时候遇到这样的问题 请问如何进行操作 : edz$ pushy uplo ...

  7. Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)

    实现流程: 手动部署Java项目至后端Web集群 1.搭建Nginx+Tomcat集群架构. 2.开发提交Java源代码至Gitlab仓库. 3.手动获取Java源代码,然后使用Maven进行编译. ...

  8. libevent linux 编译,libevent 编译debug版本

    最近要把linux下面的代码移植到windows下面,因为用到了libevent,需要编译一下. windows 7下编译: 编译环境: windows 7 + VS2010 (1)解压libeven ...

  9. Jenkins+Gitlab+Nginx+SonarQube+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)

    环境拓扑:  Jenkins -192.168.1.30  Gitlab -192.168.1.31  LB -192.168.1.32  Web1 -192.168.1.33  Web2 -192. ...

最新文章

  1. visual studio 添加链接文件
  2. Python实现跨文件全局变量的方法
  3. facade java_Java设计模式之Facade模式
  4. plsql如何执行单个语句_在单个try-with-resources语句中仔细指定多个资源
  5. 一次SSIS Package的调试经历
  6. 鸿蒙之光一星辰是什么意思,如果说安卓的目标是太阳,那么鸿蒙的目标就是星辰大海...
  7. Apache Kafka – KIP 32,33 Time Index
  8. 特征编码1 - 特征编码概述与分类
  9. 亿级流量架构服务降级,写得太好了!
  10. 知识竞赛时,竞赛活动主题及环节主题如何修改?
  11. 下载pyboard的flash中的驱动程序_教你如何安装打印机驱动程序
  12. DeepFace介绍
  13. Pyrene-PEG-Acid,芘丁酸聚乙二醇羧基,Pyrene-PEG-COOH
  14. 手机通话记录重复显示怎么处理_华为出现重复联系人 - 卡饭网
  15. C盘清理软件-SpaceSniffer
  16. python如何实现语音识别
  17. 进一步的飞鸽传书官方网站消息
  18. 一枝独秀 BugkuCTF-杂项-MISC
  19. 图形图像文件格式分类
  20. P5236 【模板】静态仙人掌(仙人掌圆方树)

热门文章

  1. [ARC062F]Painting Graphs with AtCoDeer
  2. MariaDB的二进制包安装方法
  3. 用vue+webpack搭建的前端项目结构
  4. 计算当前日期是一年中的第几周
  5. EMOS SPF开启收不到信 及WEB收件箱不显示邮件列表等问题解决处理记录
  6. ASP.NET 页面事件执行顺序
  7. web前端——让人头疼的多列复选框排列解决办法
  8. AsyncTask类的使用
  9. 你真的明确知道它们的用法吗-从基础学起
  10. PAT甲级1096 Consecutive Factors :[C++题解]连续的因子、约数