一、x86操作步骤

1. 查找是否有依赖

rpm -qa | grep rpm-build
rpm -qa | grep rpmrebuild
如果没有,就安装依赖:
yum install rpmrebuild
yum install rpm-build

2. 强制安装各服务rpm包

rpm -ivh ambari-server-2.7.3.0-139.x86_64.rpm —nodeps

3. 提取rpm包的spec文件

rpmrebuild —spec-only=ambari-server-2.7.3.0-139.x86_64.spec ambari-server-
2.7.3.0-139.x86_64

4. 提取rpm包的依赖文件

rpm2cpio ambari-server-2.7.3.0-139.x86_64.rpm | cpio —extract —make-directories

二、arm操作步骤

1. 在arm机器上执行的一些重新打包的准备工作

mkdir SPECS
scp ambari-server-2.7.3.0-139.x86_64.spec
10.1.249.36:/home/yanbin/rpmbuild/SPECS
vim :1,$s/x86_64/aarch64/g
统计总数::%s/string//gn
mkdir BUILDROOT/ambari-server-2.7.3.0-139.aarch64
image.png
cp -r x86_64 aarch64
在arm重新编译_posixsubprocess.so 文件:下载subprocess32-3.2.6,将其中的
subprocess32.py文件,替换为ambari自己的
image.png
scp -r _posixsubprocess.so
10.1.249.36:/home/yanbin/rpmbuild/BUILDROOT/ambari-server-2.7.3.0-
139.aarch64/usr/lib/ambari-server/lib/ambari_commons/libs/aarch64
在arm重新编译: _speedups.so文件
下载simplejson-3.16.0文件,将其中的decoder.py,encoder.py,scanner.py三个文件
替换为ambari自己的。
image.png

2. 重新生成RPM包

rpmbuild -ba SPECS/ambari-server-2.7.3.0-139.aarch64.spec