本文主要介绍将 rpm 包解压后,修改里面的文件,然后重新打包成 rpm 的过程。
准备环境
- 安装rpm-build包
1 | yum install rpm-build -y |
- 安装rpmdevtools
1 | yum install rpmdevtools -y |
- 创建工作空间
1 | rpmdev-setuptree |
查看工作目录
- 创建 BUILDROOT目录
1 | mkdir /root/rpmbuild/BUILDROOT |
完整目录结构
解压 rpm 包
- 复制文件
复制需要修改的 rpm 包至 /root/rpmbuild/BUILDROOT/
目录,
- 解压 rpm 包
1 | cd /root/rpmbuild/BUILDROOT |
- 提取 spec 文件
1 | rpmrebuild --package --notest-install --spec-only=zookeeper.spec zookeeper_3_0_1_0_187-3.4.6.3.0.1.0-187.noarch.rpm |
注:这里用到了rpmrebuild
工具,具体可查看:使用rpmrebuild从rpm包中提取spec文件,有下载链接和使用方法。
- 移动 SPEC 文件
1 | mv zookeeper.spec /root/rpmbuild/SPECS/ |
- 删除原 rpm 包
1 | rm -rf zookeeper_3_0_1_0_187-3.4.6.3.0.1.0-187.noarch.rpm |
修改内容
查看解压后的文件内容,
按自己需要进行修改,
- 如果只是需要替换同名文件,则直接进行替换即可;
- 如果需要增加文件或文件夹,则需要在
zookeeper.spec
中按原有格式添加文件或文件夹; - 如果需要删除文件或文件夹,也需要在
zookeeper.spec
中删除相应的文件或文件夹。 - 如果修改的文件较多,也可以将原有的
%files
内容改为1
2
3%files
%defattr(-,root,root,-)
/usr/hdp/3.0.1.0-187
重新打 rpm 包
修改好文件后,重新打包成 rpm 文件,
1 | cd /root/rpmbuild/SPECS |
执行完成后在 /root/rpmbuild/RPMS
目录中查看新的 rpm 包