编译客户端安装包

编译时“/home”目录下需要100GB容量。
- 获取ceph-14.2.8.tar.gz和ceph-global-cache.patch、globalcache-ceph-adaptor-spec.patch、ceph-global-cache-tls.patch、boostkit-globalcache-ceph-adaptor-release-1.3.15.oe1.aarch64.rpm(ARM)或boostkit-globalcache-ceph-adaptor-release-1.3.15.oe1.x86_64.rpm(x86),放置于“/home”目录下。
- 在“/home”目录下面解压Ceph源码,并对Ceph源码打patch,完成后续的客户端的出包。
1 2 3 4 5 6 7 8
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 cp ceph-global-cache-tls.patch ceph-14.2.8 cd ceph-14.2.8 patch -p1 < ceph-global-cache.patch patch -p1 < globalcache-ceph-adaptor-spec.patch patch -p1 < ceph-global-cache-tls.patch
- 安装从华为企业网或运营商网获取的闭源RPM包。
ARM环境:
rpm -ivh /home/boostkit-globalcache-ceph-adaptor-release-1.3.15.oe1.aarch64.rpm
x86环境:
rpm -ivh /home/boostkit-globalcache-ceph-adaptor-release-1.3.15.oe1.x86_64.rpm
- 使RPM包安装时设置的环境变量生效。
1
source /etc/profile
- 借助epel安装openEuler中缺少的依赖。
- 配置epel源。
1
vi /etc/yum.repos.d/epel.repo
添加如下内容:1 2 3 4 5 6
[epel] name=epel baseurl=https://repo.huaweicloud.com/epel/7/aarch64/ enabled=1 gpgcheck=0 priority=1
- 使用epel源安装依赖。
1
yum install python-routes python-tox -y
- 删除epel源。
1
rm -rf /etc/yum.repos.d/epel.repo
epel源必须删除,否则后续步骤将会从epel源下载与openEuler冲突的RPM包。
- 配置epel源。
- 编译安装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/
将打包好的文件放到SOURCES目录下。1
cp ceph-14.2.8.tar.bz2 /home/rpmbuild/SOURCES/
- 修改rpmmacros文件,注释掉下面红框中的内容。
1
vi /root/.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包。
父主题: 软件编译