[改造]-魔改pom-适配rocky8
# 一、背景说明
在 Rocky Linux 8 上适配 Ambari-Metrics(特别是 ambari-metrics-monitor
组件)时,官方 pom.xml
的 RPM 打包配置中显式声明了以下依赖:
<require>${python.ver}</require>
<require>gcc</require>
<require>${python.devel}</require>
1
2
3
4
2
3
4
在某些环境(尤其是企业内网或精简安装)中,这些依赖包可能并未预先安装,RPM 会在安装阶段直接报错并中止。
# 二、修改目标
通过在 pom.xml
中注释或删除这三项 <require>
声明,让 RPM 安装时不再强制依赖 Python 版本、GCC 及 Python
开发包,而是由运维人员在需要时手动安装,避免无关阻塞。
# 三、修改位置
文件路径:
ambari-metrics-assembly/pom.xml
1
定位到 ambari-metrics-monitor
的 <execution>
配置块,在 <requires>
节点内移除三条依赖声明:
# 四、修改前后代码对比
修改前(原配置)
<requires>
<require>${python.ver}</require>
<require>gcc</require>
<require>${python.devel}</require>
</requires>
1
2
3
4
5
6
2
3
4
5
6
修改后(精简依赖)
<requires>
<!-- <require>${python.ver}</require> -->
<!-- <require>gcc</require> -->
<!-- <require>${python.devel}</require> -->
</requires>
1
2
3
4
5
6
2
3
4
5
6
这样处理后,ambari-metrics-monitor
的 RPM 包仍可正常构建,但安装时不会因为缺少这些包而报错。
# 五、完整修改片段示例
<execution>
<id>ambari-metrics-monitor</id>
<!-- unbinds rpm creation from maven lifecycle -->
<phase>package</phase>
<goals>
<goal>rpm</goal>
</goals>
<configuration>
<name>ambari-metrics-monitor</name>
<group>Development</group>
<needarch>x86_64</needarch>
<autoRequires>false</autoRequires>
<requires>
<!-- <require>${python.ver}</require> -->
<!-- <require>gcc</require> -->
<!-- <require>${python.devel}</require> -->
</requires>
<preremoveScriptlet>
<scriptFile>${monitor.dir}/src/main/package/rpm/preremove.sh</scriptFile>
<fileEncoding>utf-8</fileEncoding>
</preremoveScriptlet>
<mappings>
<!-- 此处省略 mappings 定义,保持原样 -->
</mappings>
</configuration>
</execution>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 六、改造效果
经过改造后,在 Rocky8 上安装时,如果环境未提前安装 Python 或 GCC,不会立即中断,而是提示缺少相关功能时由管理员自行决定是否安装。
下图为 Rocky8 环境中原始安装报错截图:
改造后,安装过程可顺利进行,不再因 Requires: pythonX
等依赖阻塞。
- 01
- [/metrics/aggregated] — 聚合数据范围 检查点09-19
- 02
- [/metrics] — 反向分析接口参数 请求抓包09-17
- 03
- [/metrics] — 普通指标写入方法 POST09-17