rpmrebuild重新打包rpm

--搜索公众号"sci-geek"关注我--

rpmrebuild重新打包rpm

有时出于测试需要,可能需要临时修改某个rpm内部的某个配置,或者替换二进制,如果不想重新编译,则可以考虑通过rpmrebuild的方式来重新打包。

网上找了一通,没几个好用的,如下方法可行,写出来供大家参考。

yum install rpm-build rpmrebuild

# 前提准备
YOUR_PACKAGE_NAME=your-package-name.el7.x86_64
YOUR_PACKAGE_NAME_FULL="$YOUR_PACKAGE_NAME".rpm
mkdir /data/rpmbuild
echo "%_topdir /data/rpmbuild" >> ~/.rpmmacros
cp "$YOUR_PACKAGE_NAME_FULL" /data/rpmbuild
cd /data/rpmbuild/

# 创建打包目录:
rpmrebuild -p "$YOUR_PACKAGE_NAME_FULL" 

# 抽出spec:
rpmrebuild -s your-package-name.spec -p "$YOUR_PACKAGE_NAME_FULL"
## 将会生成your-package-name.spec文件:

# 创建BUILDROOT下目录,并将原来的rpm解压到其中:
mkdir -p BUILDROOT/"$YOUR_PACKAGE_NAME"
cp "$YOUR_PACKAGE_NAME_FULL" BUILDROOT/"$YOUR_PACKAGE_NAME"
pushd BUILDROOT/"$YOUR_PACKAGE_NAME"
rpm2cpio "$YOUR_PACKAGE_NAME_FULL" | cpio -div
rm "$YOUR_PACKAGE_NAME_FULL"
popd

# 按需修改BUILDROOT/"$YOUR_PACKAGE_NAME"下文件,同时按需修改your-package-name.spec,之后将其拷入SPECS目录中:
mv your-package-name.spec SPECS/

# 重新打包
rpmbuild -ba SPECS/your-package-name.spec
## 此时将会在/data/rpmbuild/RPMS中重新生成rpm:

# 此时可以将其解包,确认是否有预期改动。

posted @ 2026-03-10 16:03  强壮的派大星  阅读(2)  评论(0)    收藏  举报