源碼編譯後打RPM包步驟-CentOS7

目的

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

步驟

  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.spec 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文件也可以使用以下命令:ui

rpmrebuild –package –notest-install –spec-only   your.spec   xxxx.rpm
複製代碼
相關文章
相關標籤/搜索