原文参考:https://blog.csdn.net/m0_37786447/article/details/84871775
1.安装rpmrebuild 和安装rpmbuild
rpmrebuild下载链接: https://sourceforge.net/projects/rpmrebuild/files/rpmrebuild/2.14/
上面tar.gz和rpm包都有,笔者更喜欢rpm包安装方式,不过安装回来不会用,破例一次,用tar.gz。
rpmbuild直接用yum安装 :yum install rpm-build -y
2. 配置rpm编译目录,保存。 (这一步简单)
vi ~/.rpmmacros
%_topdir /data/rpmbuild
3.创建目录解压rpmrebuild文件到/data/rpmbuild中(跟着敲命令就是了)
mkdir -p /data
mkdir -p /data/rpmbuild
mkdir -p /data/rpmbuild/BUILDROOT
mkdir -p /data/rpmbuild/SPECS
cd /data/rpmbuild
压缩之前先上传好
tar -zxvf rpmrebuild-2.14.tar.gz
4.安装准备重新打包的rpm
rpm -ivh xxxxxx.rpm
我们以破解 elasticsearch-7.5.1为例,回到/root下。
跟着教程上做
rpm -ivh elasticsearch-7.5.1-x86_64.rpm
5.反编译提取SPEC文件
#查看rpm安装名称
rpm -qa|grep xxx
cd /data/rpmbuild
#ccc 为查看的rpm安装名称
./rpmrebuild.sh -s SPECS/abc.spec ccc
查看 rpm -qa|grep elasticsearch
cd /data/rpmbuild
./rpmrebuild.sh -s SPECS/abc.spec elasticsearch-7.5.1-1.x86_64
6.替换或修改rpm包中的文件
## 解压原版RPM包
rpm2cpio xxxxxx.rpm |cpio -idv
根据需求替换修改解压后的文件后
#bbb是通过命令 rpmbuild /data/rpmbuild/SPECS/abc.spec获取
mkdir -p /data/rpmbuild/BUILDROOT/bbb/
通过mv命令把rpm解压出来的文件修改后都移动到/data/rpmbuild/BUILDROOT/bbb/目录下
我们的文件在/root目录下,切换过去再执行 rpm2cpio elasticsearch-7.5.1-x86_64.rpm |cpio -idv
解压好了以后按照前面的文章替换x-pack-core-xxx.jar文件,按照经验,应该再usr目录下
/data/rpmbuild/BUILDROOT/bbb/usr/share/elasticsearch/modules/x-pack-core/x-pack-core-7.5.1.jar
详细的破解这边不赘述了,这里不是主要内容,可以参考前面的破解文章。
执行 rpmbuild /data/rpmbuild/SPECS/abc.spec
mkdir -p /data/rpmbuild/BUILDROOT/bbb/
笔者用过WInSCP复制
7.修改abc.spec (这步我们不用做)
vi /data/rpmbuild/SPECS/abc.spec
8.编译RPM包生成的RPM位置在/data/rpmbuild/RPMS/
rpmbuild -ba /data/rpmbuild/SPECS/abc.spec
执行这条命令报错了,提示找不到文件,而且路径也不对,
所以在/data/rpmbuild/BUILDROOT/目录下新建elasticsearch-7.5.1-1.x86_64目录,然后把bbb目录下的文件重新复制到elasticsearch-7.5.1-1.x86_64目录下
再来执行就不报错了(整个过程大概3分钟)
生成好了