1. 程式人生 > 程式設計 >原始碼編譯後打RPM包步驟-CentOS7

原始碼編譯後打RPM包步驟-CentOS7

目的

修改了Spark部分原始碼,編譯成jar包後要替換原rpm包中的jar,並重新打成rpm包以便安裝。

步驟

  1. 安裝rpmbuild,rpmrebuild,rpmdevtools
yum install -y rpm-build
yum install -y rpmrebuild
yum install -y rpmdevtools
複製程式碼
  1. 執行rpmdev-setuptree生成工作目錄,使用rpmbuild --showrc | grep topdir檢視工作目錄。如果是root使用者,此時生成的資料夾在/root/rpmbuild下。 注意:cd /root/rpmbuild;mkdir BUILDROOT
  2. 也可mkdir -p手動生成這些目錄:
mkdir -p /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
複製程式碼
  1. 提取spec檔案:
rpmrebuild -p -n -s spark2.spec spark2_3_0_1_0_187-2.3.1.3.0.1.0-187.noarch.rpm
複製程式碼
  1. 將生成的spark2.spec拷貝到SPECS目錄下。
  2. 將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
複製程式碼
  1. 你可能需要建立spark2_3_0_1_0_187-2.3.1.3.0.1.0-187目錄,並將上一步解壓出來的內容移動到這個目錄。
  2. 將你修改程式碼編譯成的jar包拷貝到解壓出來的相應位置(刪除原來同名的jar包!)
  3. 根據提取的spec檔案把解壓出的那些檔案重新打rpm包:
cd ~/rpmbuild/
rpmbuild -ba SPECS/spark2.spec
複製程式碼
  1. 新生成的xxx.rpm包位置在/root/rpmbuild/RPMS下(使用root使用者時)
  2. 這個rpm包可以安裝使用了:
rpm -ivh /root/rpmbuild/RPMS/xxx.rpm
複製程式碼

提取spec檔案也可使用如下命令:

rpmrebuild –package –notest-install –spec-only   your.spec   xxxx.rpm
複製程式碼