Categories: ELK

修改rpm中的文件重新打包

原文参考: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分钟)

生成好了

四月的奥德赛

Share
Published by
四月的奥德赛