Ceph編譯:L版本及其之後的版本
阿新 • • 發佈:2021-11-09
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 -j 8
執行make install
編譯安裝原始碼
sudo make install
生成vstart指令碼:
cd build
make vstart
參考資料:
https://blog.csdn.net/a1454927420/article/details/72412278 https://blog.csdn.net/ygtlovezf/article/details/81333956