• 【ceph | 运维】nautilus版本编译


    编译前准备

    下载代码库

    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 -j 8

    执行make install 编译安装源码

    sudo make install

    生成vstart脚本:

    cd build 
    make vstart

    参考资料

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

    https://blog.csdn.net/a1454927420/article/details/72412278 https://blog.csdn.net/ygtlovezf/article/details/81333956

  • 相关阅读:
    菖蒲河公园-中山公园-天安门广场一日游
    LeetCode 485 Max Consecutive Ones
    LeetCode 766. Toeplitz Matrix
    LeetCode 566 Reshape the Matrix
    LeetCode 561. Array Partition I
    算法学习系列之(1):常用算法设计方法
    纪念2017,展望2018
    Java server数据之(4):Redis鸟瞰
    《机器学习》读书笔记-第一章 引言
    node.js实践第二天
  • 原文地址:https://www.cnblogs.com/sunbines/p/15528353.html
Copyright © 2020-2023  润新知