环境准备
本文档中,不同操作系统下的操作若有不同,会进行说明区分,若未说明,则该操作在两个操作系统下一致。
CentOS 7.6
- 安装epel源。
1
yum install epel-release -y
- 安装SCL软件集。
1
yum -y install centos-release-scl
- 修改SCL repo源。
1
vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
添加以下字段:
1
baseurl=http://mirror.centos.org/altarch/7/sclo/$basearch/rh/
修改scl-rh repo源中http为https。1
vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
- 设置Yum证书验证。
1
vi /etc/yum.conf
1 2
sslverify=false deltarpm=0
- 更新Yum。
1
yum clean all && yum makecache
- (可选)模拟GCC 7编译环境并验证。编译依赖GCC 7及以上版本,若GCC版本符合要求则请跳过此步骤,若低于7则可参考此步骤开启GCC 7模拟环境。
1 2 3
yum -y install devtoolset-7 scl enable devtoolset-7 bash gcc --version
回显打印GCC版本为7.0即为模拟环境开启成功。
openEuler 20.03
- 配置liboath本地源。
- 下载liboath源码及补丁。
1 2 3
yum install git -y git config --global http.sslVerify false git clone https://gitee.com/src-openeuler/oath-toolkit.git
- Yum安装rpm打包所需的依赖。
1
yum install wget rpmdevtools gtk-doc pam-devel xmlsec1-devel libtool libtool-ltdl-devel createrepo cmake -y
- 创建rpmbuild目录,并将patch文件和源码包移动到“/root/rpmbuild/SOURCES”目录下。
1 2 3 4 5
rpmdev-setuptree cd oath-toolkit mv 0001-oath-toolkit-2.6.5-lockfile.patch /root/rpmbuild/SOURCES mv oath-toolkit-2.6.5.tar.gz /root/rpmbuild/SOURCES cp oath-toolkit.spec /root/rpmbuild/SPECS/
- 编译RPM包。
1
rpmbuild -bb /root/rpmbuild/SPECS/oath-toolkit.spec
- 将编译好的RPM包作为本地Yum源。
1 2 3
mkdir -p /home/oath cp -r /root/rpmbuild/RPMS/* /home/oath/ cd /home/oath && createrepo .
- 配置repo文件。
1
vi /etc/yum.repos.d/local.repo
文件中加入以下内容:
1 2 3 4 5 6
[local-oath] name=local-oath baseurl=file:///home/oath enabled=1 gpgcheck=0 priority=1
- 下载liboath源码及补丁。
- 编辑“yum.conf”文件,设置Yum证书验证状态为不验证。
1
vi /etc/yum.conf
在末尾添加如下内容:
1 2
sslverify=false deltarpm=0
- 配置华为
代理 ,提高下载速度。1 2
mkdir -p ~/.pip vi ~/.pip/pip.conf
添加如下内容:
1 2 3 4
[global] timeout = 120 index-url =https://repo.huaweicloud.com/repository/pypi/simple trusted-host = repo.huaweicloud.com
- 下载华为镜像源repo。
1
wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_aarch64.repo
- 安装
服务端 Ceph源码编译需要的依赖。1
yum install java-devel sharutils checkpolicy selinux-policy-devel gperf cryptsetup fuse-devel gperftools-devel libaio-devel libblkid-devel libcurl-devel libudev-devel libxml2-devel libuuid-devel ncurses-devel python-devel valgrind-devel xfsprogs-devel xmlstarlet yasm nss-devel libibverbs-devel openldap-devel CUnit-devel python2-Cython python3-setuptools python-prettytable lttng-ust-devel expat-devel junit boost-random keyutils-libs-devel openssl-devel libcap-ng-devel python-sphinx python2-sphinx python3-sphinx leveldb leveldb-devel snappy snappy-devel lz4 lz4-devel liboath liboath-devel libbabeltrace-devel librabbitmq librabbitmq-devel librdkafka librdkafka-devel libnl3 libnl3-devel rdma-core-devel numactl numactl-devel numactl-libs createrepo openldap-devel rdma-core-devel lz4-devel expat-devel lttng-ust-devel libbabeltrace-devel python3-Cython python2-Cython gperftools-devel bc dnf-plugins-core librabbitmq-devel rpm-build java-1.8.0-openjdk-devel -y
- 在“/home”目录重新生成RPMbuild目录。
- 执行rpmbuild安装命令。
1
rpmdev-setuptree
- 修改“.rpmmacros”文件。
1
vi /root/.rpmmacros
修改“%_topdir”为“/home/rpmbuild”。
- 再次执行rpmbuild安装命令。
1
rpmdev-setuptree
- 执行rpmbuild安装命令。
父主题: 编译部署Ceph