ceph编译及虚拟机环境搭建

虚拟机前置通用步骤:配置静态ip、更换yum源、安装git。

机器配置

建议:内存8G以上,硬盘容量40G以上。

系统:Centos 7

配置代理

https 下载

使用 export 命令,每次重启电脑都需要重新开启代理,可以通过向 /etc/profile.d/proxy.sh 写入环境变量来持久化 ip 代理。

#ip代理 
export http_proxy=http://192.168.30.216:7890

export https_proxy=https://192.168.30.216:7890

#关闭ip代理
unset http_proxy

unset https_proxy

#git代理
git config --global http.proxy http://192.168.30.216:7890

git config --global https.proxy https://192.168.30.216:7890

#关闭git代理
git config --global --unset http.proxy

git config --global --unset https.proxy

#如果是虚拟机走主机代理,请打开主机代理软件的 Allow LAN(允许局域网内机器通过代理)

ssh 下载

参考链接:https://www.cnblogs.com/cscshi/p/15705045.html

编辑 ~/.ssh/config 文件,给文件加上如下对应内容

 # HTTP 代理
Host github.com
    User git
    ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %p

解释:

Host 后面 接的 github.com 是指定要走代理的仓库域名。
在 ProxyCommand 中,Linux 和 macOS 用户用的是 nc。
-X 选项后面接的是 connect 的意思是 HTTPS 代理。
-x 选项后面加上代理地址和端口号。
在调用 ProxyCommand 时,%h 和 %p 将会被自动替换为目标主机名和 SSH 命令指定的端口(%h 和 %p 不要修改,保留原样即可)。

源码下载

git clone https://github.com/ceph/ceph.git
cd ceph
git tag
git checkout  v14.2.7
git checkout -b v14.2.7

编译

安装 gcc 7

安装scl软件集。

yum -y install centos-release-scl

修改scl repo源。

vi /etc/yum.repos.d/CentOS-SCLo-scl.repo

添加以下字段:

baseurl=http://mirror.centos.org/altarch/7/sclo/$basearch/rh/

ceph编译及虚拟机环境搭建_第1张图片

模拟gcc7编译环境

yum -y install devtoolset-7

scl enable devtoolset-7 bash #每次重启需要重新输入,启用gcc7

gcc --version

编译 ceph

git submodule update --init --recursive
./install-deps.sh

# 可以在编译是,通过ARGS参数为cmake附加参数。如下命令作用开启cephfs-shell
# ARGS="-DWITH_PYTHON3=3 -DWITH_CEPHFS_SHELL=ON" ./do_cmake.sh 
./do_cmake.sh
cd build/
#关闭代理,否则可能报错
unset http_proxy
unset https_proxy
make -j 4

参考链接

https://support.huaweicloud.com/prtg-kunpengsdss/kunpengceph_02_0003.html

问题

  1. 问题描述: Error: No Package found for python-scipy

    解决方法:I was able to fix this dependency problem by deleting the 'BuildRequires: python%{python_buildid}-scipy’ line from the ceph.spec.in file:

    sed -i -e '/BuildRequires:  python%{_python_buildid}-scipy/d' ceph.spec.in
    

    参考连接:https://www.spinics.net/lists/ceph-users/msg63428.html

  2. 问题描述:Could not fetch URL https://pypi.org/simple/wheel/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org’, port=443): Max retries exceeded with url: /simple/wheel/ (Caused by SSLError(SSLEOFError(8, u’EOF occurred in violation of protocol (_ssl.c:618)‘),)) - skipping
    ERROR: Could not find a version that satisfies the requirement wheel>=0.24 (from versions: none)
    ERROR: No matching distribution found for wheel>=0.24
    Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org’, port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLEOFError(8, u’EOF occurred in violation of protocol (_ssl.c:618)’),)) - skipping

    解决方法:换国内 pip 源

    pip install xlrd -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    
  3. 问题描述:-- Could NOT find RDKafka: Found unsuitable version “0.11.5”, but required is at least “1.9.2” (found /usr/include)

    解决方法:安装新版本 librdkafka

    1,Git clone
    
    git clone https://github.com/edenhill/librdkafka.git
    
    2,cd librdkafka/
    
    3,./configure 
    
    4,make
    
    5,sudo make install
    

git 子模块

修改 ceph/.gitmoudles 文件中url路径

使用国内镜像,目前已知Github国内镜像网站有github.com.cnpmjs.org和git.sdut.me/。速度根据各地情况而定,在clone某个项目的时候将github.com替换为github.com.cnpmjs.org即可。

wq@ubuntu:~/ceph$ vi ./.gitmodules
ubmodule "src/c-ares"]
        path = src/c-ares
        url = https://github.com.cnpmjs.org/ceph/c-ares.git
...

更新 git config

sudo git submodule sync

你可能感兴趣的:(Ceph,git,centos,linux)