TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • 开发环境

  • Ambari 编译

  • Bigtop 编译

  • Ambari 源码编译

    • Ambari Views

    • Ambari

    • Ambari-Metrics

      • Ambari-Metrics 环境包高速下载
      • Ambari-Metrics-Redhat下源码编译指南
      • [改造]-魔改pom-适配rocky8
        • 一、背景说明
        • 二、修改目标
        • 三、修改位置
        • 四、修改前后代码对比
        • 五、完整修改片段示例
        • 六、改造效果
      • Ambari-Metrics-Ubuntu下源码编译指南
      • [改造]-魔改posinst-适配ubuntu22
      • [改造]-魔改pom-适配ubuntu22
    • Ambari-Infra

  • 前端开发

  • 后端开发

  • 官方组件编译

  • 扩展组件编译

  • 源码编译
  • Ambari 源码编译
  • Ambari-Metrics
JaneTTR
2025-08-10
目录
一、背景说明
二、修改目标
三、修改位置
四、修改前后代码对比
五、完整修改片段示例
六、改造效果

[改造]-魔改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

在某些环境(尤其是企业内网或精简安装)中,这些依赖包可能并未预先安装,RPM 会在安装阶段直接报错并中止。

# 二、修改目标

通过在 pom.xml 中注释或删除这三项 <require> 声明,让 RPM 安装时不再强制依赖 Python 版本、GCC 及 Python 开发包,而是由运维人员在需要时手动安装,避免无关阻塞。

# 三、修改位置

文件路径:

ambari-metrics-assembly/pom.xml
1

定位到 ambari-metrics-monitor 的 <execution> 配置块,在 <requires> 节点内移除三条依赖声明:

image-20250814163602364

# 四、修改前后代码对比

修改前(原配置)


<requires>
    <require>${python.ver}</require>
    <require>gcc</require>
    <require>${python.devel}</require>
</requires>
1
2
3
4
5
6

修改后(精简依赖)


<requires>
    <!-- <require>${python.ver}</require> -->
    <!-- <require>gcc</require> -->
    <!-- <require>${python.devel}</require> -->
</requires>
1
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

# 六、改造效果

经过改造后,在 Rocky8 上安装时,如果环境未提前安装 Python 或 GCC,不会立即中断,而是提示缺少相关功能时由管理员自行决定是否安装。

下图为 Rocky8 环境中原始安装报错截图:

ba51f8122c26e9bccdeb7d90c9420f43

改造后,安装过程可顺利进行,不再因 Requires: pythonX 等依赖阻塞。

#Ambari-Metrics#Ambari#源码编译#Rocky Linux
Ambari-Metrics-Redhat下源码编译指南
Ambari-Metrics-Ubuntu下源码编译指南

← Ambari-Metrics-Redhat下源码编译指南 Ambari-Metrics-Ubuntu下源码编译指南→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式