本文介紹如何使用redhat官方提供的源代碼rpm包編譯成Calamari Server二進制RPM軟件包。編譯過程很簡單,一條命令便可。這裏主要記錄下編譯過程出錯的解決辦法,但願能幫助有須要的朋友。
一、下載python
[root@hdp04 ~]# wget http://ftp.redhat.com/pub/redhat/linux/enterprise/7Server/en/RHCEPH/SRPMS/calamari-server-1.5.7-1.el7cp.src.rpm
二、安裝依賴軟件linux
[root@hdp04 ~]# yum -y install httpd python-setuptools python-virtualenv redhat-lsb-core cairo pycairo logrotate openssl sqlite checkpolicy selinux-policy-devel selinux-policy-doc rpm-build git python2-pip
三、安裝源代碼RPMgit
[root@hdp04 ~]# rpm -i calamari-server-1.5.7-1.el7cp.src.rpm 執行完rpm命令,會在當前root家目錄生成rpmbuild文件夾,裏面包含了如下內容,以下圖所示:
四、修改源文件,從新打包
這裏主要修改get-flavor.sh文件。sql
[root@hdp04 rpmbuild]# tar -xzf SOURCES/calamari-server_1.5.7.tar.gz [root@hdp04 rpmbuild]# cd calamari-server-1.5.7
因我使用的系統爲Oracle Linux 7,因此在編譯的時候,當執行到get-flavor.sh命令時,會退出。由於此腳本里只有CentOS和RedHatEnterpriseServer,以下圖:
將其更改爲如下內容:
更改完成後,從新打包並替換掉SOURCES裏的calamari-server_1.5.7.tar.gz軟件包。python2.7
[root@hdp04 rpmbuild]# tar -czf calamari-server_1.5.7.tar.gz calamari-server-1.5.7 [root@hdp04 rpmbuild]# cp calamari-server_1.5.7.tar.gz SOURCES/
五、修改SPEC文件
註釋掉如下內容:ide
[root@hdp04 SPECS]# vi calamari-server.spec chmod -R go-w ${RPM_BUILD_ROOT}/opt/calamari/venv/lib/python2.7/site-packages/setuptools-0.9.8-py2.7.egg-info
六、執行rpmbuild編譯ui
[root@hdp04 SPECS]# rpmbuild -bb calamari-server.spec 執行完成後,會在RPMS裏生成二進制rpm軟件包,以下圖所示: