编译客户端安装包
前提条件
编译时“/home”目录下需要100GB容量。
操作步骤
- 获取软件包放置于“/home”目录下。
所需软件包:
- ceph-global-cache.patch
- globalcache-ceph-adaptor-spec.patch
- boostkit-globalcache-ceph-adaptor-release-1.4.1.oe1.aarch64.rpm(Arm)或 boostkit-globalcache-ceph-adaptor-release-1.4.1.oe1.x86_64.rpm(x86)
- 在“/home”目录下面解压Ceph源码,并对Ceph源码打patch,完成后续的客户端的出包。
1 2 3 4 5 6
tar -zxvf ceph-14.2.8.tar.gz cp ceph-global-cache.patch ceph-14.2.8 cp globalcache-ceph-adaptor-spec.patch ceph-14.2.8 cd ceph-14.2.8 patch -p1 < ceph-global-cache.patch patch -p1 < globalcache-ceph-adaptor-spec.patch
- 安装从华为企业网或运营商网获取的闭源RPM包。
- Arm环境:
rpm -ivh /home/boostkit-globalcache-ceph-adaptor-release-1.4.1.oe1.aarch64.rpm
- x86环境:
rpm -ivh /home/boostkit-globalcache-ceph-adaptor-release-1.4.1.oe1.x86_64.rpm
- Arm环境:
- 使RPM包安装时设置的环境变量生效。
1
source /etc/profile
- 编译安装mxml。
- 将从开源网站获取mxml-3.2.tar.gz置于“/home”目录下。
- 解压mxml-3.2.tar.gz。
1 2
cd /home tar -zxvf mxml-3.2.tar.gz
- 配置、编译和安装mxml。
cd mxml-3.2 ./configure make all make install
- 运行install-deps.sh,安装依赖包。
1 2
cd /home/ceph-14.2.8/ sh install-deps.sh
“install-deps.sh”脚本如果执行失败,可以尝试切换代理后重新运行。openEuler 20.03 LTS SP3版本操作系统存在两个版本的PostgreSQL,安装时会冲突,为避免冲突时脚本退出,需要删除“install-deps.sh”中的set -e后执行脚本。
- 修改ceph.spec.in文件。
1
sed -i 's#%if 0%{?fedora} || 0%{?rhel}#%if 0%{?fedora} || 0%{?rhel} || 0%{?openEuler}#' ceph.spec.in
- 回到上级目录并将“ceph-14.2.8”目录打包为tar.bz2格式的压缩包。
1 2
cd /home tar -cjvf ceph-14.2.8.tar.bz2 ceph-14.2.8
- 拷贝文件。
- 将“ceph.spec”文件拷贝到“SPECS”中。
1
cp ceph-14.2.8/ceph.spec /home/rpmbuild/SPECS/
- 将8打包好的文件放到“SOURCES”目录下。
1
cp ceph-14.2.8.tar.bz2 /home/rpmbuild/SOURCES/
- 将“ceph.spec”文件拷贝到“SPECS”中。
- 修改“.rpmmacros”文件。
- 打开“.rpmmacros”文件。
1
vim /root/.rpmmacros
- 按“i”键进入编辑模式,注释掉下面红框中的内容。
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 打开“.rpmmacros”文件。
- 删除“/etc/profile.d/performance.sh”以提高编译速度。
1
rm -rf /etc/profile.d/performance.sh
- 重新开启一个新的终端让上一步骤生效,使用rpmbuild开始编译。
1 2
unset GOMP_CPU_AFFINITY rpmbuild -bb /home/rpmbuild/SPECS/ceph.spec
编译过程需要花费半小时以上,编译完成后会在“/home/rpmbuild/RPMS/”目录下生成两个目录“aarch64”和“noarch”,其中包含有Ceph相关的RPM包。
父主题: 软件编译