系统版本 Ubuntu 20.04 (Focal Fossa)
编译的ceph版本:18.2.8
以下步骤按顺序执行
源码下载
拉取ceph仓库并切换到tag=18.2.8的分支,然后更新子模块。
apt install curl
FOR_MAKE_CHECK=0 NO_BOOST_PKGS=1 ./install-deps.sh
apt install python3-routes
切换编译工具版本
gcc
切换gcc版本,一定要大于11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 20 --slave /usr/bin/g++ g++ /usr/bin/g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10 --slave /usr/bin/g++ g++ /usr/bin/g++-9
sudo update-alternatives --auto gcc
CMake
切换CMake版本到3.*:
apt-cache policy cmake | head -40
sudo apt-get install -y --allow-downgrades cmake=3.16.3-1ubuntu1.20.04.1 cmake-data=3.16.3-1ubuntu1.20.04.1
sudo apt-mark hold cmake cmake-data
脚本微调
当前版本要对脚本中chown的对象做一些调整:
cd ~/ceph
sed -i "s|nodeenv-dir}/src'|nodeenv-dir}'|" src/pybind/mgr/dashboard/frontend/CMakeLists.txt
手动安装Boost库
当前版本下,Boost库的请求地址在国内不稳定,稳定下载需要手动安装.
下载
wget -c https://archives.boost.io/release/1.79.0/source/boost_1_79_0.tar.bz2
# 这里默认下载的地址在~/
源代码处理:
rm -rf ~/ceph/src/boost
mkdir -p ~/ceph/src/boost
tar xjf ~/boost_1_79_0.tar.bz2 -C ~/ceph/src/boost --strip-components=1
编译配置
如果系统安装了多个python,一定要使用Focal自带的python版本进行编译配置
./do_cmake.sh -DWITH_SYSTEM_BOOST=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPython3_EXECUTABLE=/usr/bin/python3 -DCMAKE_POLICY_VERSION_MINIMUM=3.5
如果提示有一些command对应的包找不到,补安装然后到ceph/build下运行 cmake . 补一下即可。比如在tan15上碰到的问题是没有jq,那就补安装一下jq:
apt-get install -y jq
cd ceph/build/
cmake .
进行编译
进行编译即可。
ninja -j64
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2504_90738671/article/details/167586638



