Ceph开发:如何编译ceph rpm包

产生源码压缩包

下载或从源码中生成源码的压缩包,如果你使用的是git仓库,那么你在源码根目录运行下面的命令,命令后可以设置源码的版本号。如果不指定版本号,该命令会根据git仓库的最近的tag号来产生版本号:

./make-dist 

另外,也可以从官网下载所需要的源码包:

wget -P ~/rpmbuild/SOURCES/ https://download.ceph.com/tarballs/ceph-.tar.bz2

rpm编译工具准备

生成了源码压缩包之后,下面需要安装rpm编译工具,在安装该工具之前,你需要确保已经安装了编译套件,如果没有,请运行源码包中的install-deps.sh脚本安装相关软件。运行下面的命令安装rpm-build工具和rpmdevtools:

yum install rpm-build rpmdevtools

安装完成之后,初始化一个rpm编译环境:

rpmdev-setuptree

该命令会生成这样一个目录结构:

rpmbuild ├── SRPMS ├── SPECS ├── SOURCES ├── RPMS ├── BUILDROOT └── BUILD

将前面获得的压缩包移动到rpmbuild/SOURCES目录下:

mv ceph-.tar.bz2 rpmbuild/SOURCES

生成spec文件

spec文件是rpmbuild工具的编译脚本,这一步是根据源码包中的ceph.spec.in生成ceph.spec。运行下面的命令:

tar --strip-components=1 -C ~/rpmbuild/SPECS/ --no-anchored -xvjf ~/rpmbuild/SOURCES/ceph-.tar.bz2 "ceph.spec"

编译rpm

编译rpm包,该命令是一次完成编译和打包,所以运行该命令之前需要确保你的源码已经编译成功。

rpmbuild -ba ~/rpmbuild/SPECS/ceph.spec

参考资料

  1. https://docs.ceph.com/en/latest/install/build-ceph/#rpm-package-manager
  2. https://docs.ceph.com/en/latest/install/build-ceph/#build-prerequisites

你可能感兴趣的:(Ceph开发:如何编译ceph rpm包)