美文网首页Ceph开发指南
Ceph开发:如何编译ceph rpm包

Ceph开发:如何编译ceph rpm包

作者: 退休码农飞伯德 | 来源:发表于2021-03-11 09:17 被阅读0次

    产生源码压缩包

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">./make-dist <version></pre>

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">wget -P ~/rpmbuild/SOURCES/ https://download.ceph.com/tarballs/ceph-<version>.tar.bz2</pre>

    rpm编译工具准备

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">yum install rpm-build rpmdevtools</pre>

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">rpmdev-setuptree</pre>

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">rpmbuild ├── SRPMS ├── SPECS ├── SOURCES ├── RPMS ├── BUILDROOT └── BUILD</pre>

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">mv ceph-<version>.tar.bz2 rpmbuild/SOURCES</pre>

    生成spec文件

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">tar --strip-components=1 -C ~/rpmbuild/SPECS/ --no-anchored -xvjf ~/rpmbuild/SOURCES/ceph-<version>.tar.bz2 "ceph.spec"</pre>

    编译rpm

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

    <pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">rpmbuild -ba ~/rpmbuild/SPECS/ceph.spec</pre>

    参考资料

    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包

        本文链接:https://www.haomeiwen.com/subject/xidnqltx.html