Ceph編譯:L版本及其之后的版本


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

參考資料:
https://blog.csdn.net/a1454927420/article/details/72412278
https://blog.csdn.net/ygtlovezf/article/details/81333956


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM