重新制作 rpm 有两种方式
方式一:
1、rpm2cpio xxx.rpm |cpio -idv
2、修改相关文件
3、rpmrebuild -s my.spec xxx.rpm
4、rpmbuild -ba xxx.spec
方式二:
1、rpmrebuild -m /bin/bash -np rpm/xxx.rpm
2、此时我们得到一个交互shell,
3、比如知道需要修改的文件名为aaa,可以这样操作:
4、find / -name aaa (一般在/root/.tmp/rpmrebuild.xxx)
5、尽情发挥吧,完了退出
6、ctrl+D
注:一般跨操作系统时,生成的rpm 后缀不太准确
比如:原本是 el7 的包,但在centos 8 下编译就生成 el8 的包,针对这个问题,其实就是spec 中指定的 %{?dist} 宏作怪,我们可以通过 rpmbuild -E %{?dist} 查看,需要修改它,创建 ~/.rpmmacros 在里面写入你想生成的后缀宏
[root@ccc64 data]# rpmbuild -E %{?dist}
.ctl3[root@ccc64 data]# rpmbuild -E %{?dist}
.el7
[root@ccc64 data]# cat ~/.rpmmacros
%dist .el7