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:
# 此时可以将其解包,确认是否有预期改动。
浙公网安备 33010602011771号