原始碼編譯後打RPM包步驟-CentOS7
阿新 • • 發佈:2019-12-31
目的
修改了Spark部分原始碼,編譯成jar包後要替換原rpm包中的jar,並重新打成rpm包以便安裝。
步驟
- 安裝rpmbuild,rpmrebuild,rpmdevtools
yum install -y rpm-build
yum install -y rpmrebuild
yum install -y rpmdevtools
複製程式碼
- 執行rpmdev-setuptree生成工作目錄,使用rpmbuild --showrc | grep topdir檢視工作目錄。如果是root使用者,此時生成的資料夾在
/root/rpmbuild
下。 注意:cd /root/rpmbuild;mkdir BUILDROOT - 也可mkdir -p手動生成這些目錄:
mkdir -p /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
複製程式碼
- 提取spec檔案:
rpmrebuild -p -n -s spark2.spec spark2_3_0_1_0_187-2.3.1.3.0.1.0-187.noarch.rpm
複製程式碼
- 將生成的
spark2.spec
拷貝到SPECS目錄下。 - 將spark2_3_0_1_0_187-2.3.1.3.0.1.0-187.noarch.rpm解壓到rpmbuild/BUILDROOT目錄下:
rpm2cpio spark2_3_0_1_0_187-2.3.1.3.0.1.0-187.noarch.rpm |cpio –idv
複製程式碼
- 你可能需要建立spark2_3_0_1_0_187-2.3.1.3.0.1.0-187目錄,並將上一步解壓出來的內容移動到這個目錄。
- 將你修改程式碼編譯成的jar包拷貝到解壓出來的相應位置(刪除原來同名的jar包!)
- 根據提取的spec檔案把解壓出的那些檔案重新打rpm包:
cd ~/rpmbuild/
rpmbuild -ba SPECS/spark2.spec
複製程式碼
- 新生成的xxx.rpm包位置在/root/rpmbuild/RPMS下(使用root使用者時)
- 這個rpm包可以安裝使用了:
rpm -ivh /root/rpmbuild/RPMS/xxx.rpm
複製程式碼
注
提取spec檔案也可使用如下命令:
rpmrebuild –package –notest-install –spec-only your.spec xxxx.rpm
複製程式碼