本文转载自:https://www.cnblogs.com/felixzh/p/10564895.html
1.安装rpmrebuild 和安装rpmbuild
rpmrebuild下载链接: https://sourceforge.net/projects/rpmrebuild/files/rpmrebuild/2.12-1/
rpmbuild直接用yum安装 :yum install rpm-build
2.创建目录解压rpmrebuild文件到/data/rpmbuild中
mkdir -p /data
mkdir -p /data/rpmbuild
mkdir -p /data/rpmbuild/BUILDROOT
mkdir -p /data/rpmbuild/SPECS
cd /data/rpmbuild
echo "%_topdir /data/rpmbuild" >> ~/.rpmmacros
tar -zxvf rpmrebuild-2.14.tar.gz
3.安装准备重新打包的rpm
rpm -ivh xxxxxx.rpm
4.反编译提取SPEC文件
查看rpm安装名称
rpm -qa|grep xxx
./rpmrebuild.sh -s SPECS/abc.spec ccc
ccc 为查看的rpm安装名称
5.替换或修改rpm包中的文件
解压原版RPM包
rpm2cpio xxxxxx.rpm |cpio -idv
接下来可根据需求替换修改解压后的文件后
6.修改abc.spec
vi /data/rpmbuild/SPECS/abc.spec
例如: 原内容为
%attr(0644, root, root) "/usr/lib/123.jar"
删除了123.jar,添加了新的456.jar,包权限为0644,用户是root,用户组也是root
删除%attr(0644, root, root) "/usr/lib/123.jar"
行
增加 %attr(0644, root, root) "/usr/lib/456.jar"
行
保存aba.spec
7.编译RPM包
rpmbuild -ba /data/rpmbuild/SPECS/abc.spec
生成的RPM位置在/data/rpmbuild/RPMS/
更多RPM打包原理可参考:https://www.ibm.com/developerworks/cn/linux/l-rpm/