本文介紹如何使用redhat官方提供的源代碼rpm包編譯成Calamari Server二進制RPM軟件包。編譯過程很簡單,一條命令即可。這裏主要記錄下編譯過程出錯的解決辦法,希望能幫助有需要的朋友。
1、下載
[root@hdp04 ~]# wget http://ftp.redhat.com/pub/redhat/linux/enterprise/7Server/en/RHCEPH/SRPMS/calamari-server-1.5.7-1.el7cp.src.rpm
2、安裝依賴軟件
[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
3、安裝源代碼RPM
[root@hdp04 ~]# rpm -i calamari-server-1.5.7-1.el7cp.src.rpm
執行完rpm命令,會在當前root家目錄生成rpmbuild文件夾,裏面包含了以下內容,如下圖所示:
4、修改源文件,重新打包
這裏主要修改get-flavor.sh文件。
[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軟件包。
[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/
5、修改SPEC文件
註釋掉以下內容:
[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
6、執行rpmbuild編譯
[root@hdp04 SPECS]# rpmbuild -bb calamari-server.spec
執行完成後,會在RPMS裏生成二進制rpm軟件包,如下圖所示: