TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装教程
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 支持&共建

    • 蓝图愿景
    • 合作共建
登陆
GitHub (opens new window)
  • Bigtop通用部分

  • Bigtop打包部分

    • RPM

    • DEB

      • Step4-buildroot处理
      • Step5-Debian下构造-source
      • Step5-Debian下构造-compat
      • Step5-Debian下构造-control
      • Step5-Debian下构造-copyright
      • Step5-Debian下构造-dirs
      • Step5-Debian下构造-install
      • Step5-Debian下构造-inst|rm
      • Step5-Debian下构造-rules
      • Step6-Log-编译细节
        • Step7-Log-安装细节
        • Step8-Log-制品细节
    • Ambari部分

    • J-Redis集成-F
    • Bigtop打包部分
    • DEB
    JaneTTR
    2025-06-24
    目录

    Step6-Log-编译细节

    我们的编译命令是:

    gradle redis-pkg -PparentDir=/usr/bigtop -Dbuildwithdeps=true -PpkgSuffix
    
    1

    image-20250818140345515

    本节通过实际日志片段,完整还原 DEB 打包 下 Redis 的构建细节,并和 RPM 版本进行对照分析。

    # 1. 进入编译目录

    02:27:14.971 [QUIET] [system.out] make[1]: Entering directory '/opt/modules/bigtop/output/redis/redis-3-2-0-7.4.0'
    
    1
    • DEB 构建目录位于 output 下,而 RPM 构建目录在 build → BUILD/ 更深层。
    • 两者逻辑一致:准备一个干净的中间目录作为编译容器。

    提示

    DEB 和 RPM 的主要区别不在源码编译,而是产物落盘路径和中间目录组织。


    # 2. 调用 rules 文件

    02:27:14.983 [QUIET] [system.out]    debian/rules override_dh_auto_build
    
    1
    • debian/rules 是 DEB 构建的核心入口,等价于 RPM 的 %build 宏。
    • 在我们的 rules 文件里,定义了 override_dh_auto_build,最终会触发 redis 的构建。

    笔记

    RPM → spec 的 %build DEB → rules 的 override_dh_auto_build 本质上都是“钩子函数”。

    # 3. 执行 do-component-build

    02:27:14.983 [QUIET] [system.out] env \
           REDIS_VERSION=7.4.0 \
           NEXUS_URL= \
           NEXUS_USERNAME= \
           NEXUS_PASSWORD= \
           bash debian/do-component-build \
           -Dversion= \
           -Dmaven.repo.local=/root/.m2/repository
    
    1
    2
    3
    4
    5
    6
    7
    8
    • 与 RPM 一样,真正的编译动作交给 do-component-build 脚本。
    • 参数通过 env 环境变量注入,确保 redis 能拿到正确的版本号和仓库信息。

    提示

    Bigtop 的设计理念 → 一切以环境变量驱动。无论 RPM 还是 DEB,调用逻辑完全统一。

    # 4. 加载 bigtop.bom → 依赖版本注入

    
    02:27:14.965 [QUIET] [system.out] dh_auto_configure: warning: Compatibility levels before 10 are deprecated (level 9 in use)
    02:27:14.969 [QUIET] [system.out]    debian/rules override_dh_auto_build
    02:27:14.971 [QUIET] [system.out] make[1]: Entering directory '/opt/modules/bigtop/output/redis/redis-3-2-0-7.4.0'
    02:27:14.983 [QUIET] [system.out] env \
    02:27:14.983 [QUIET] [system.out]       REDIS_VERSION=7.4.0 \
    02:27:14.983 [QUIET] [system.out]       NEXUS_URL= \
    02:27:14.983 [QUIET] [system.out]       NEXUS_USERNAME= \
    02:27:14.983 [QUIET] [system.out]       NEXUS_PASSWORD= \
    02:27:14.983 [QUIET] [system.out]       bash debian/do-component-build \
    02:27:14.983 [QUIET] [system.out]       -Dversion= \
    02:27:14.983 [QUIET] [system.out]       -Dmaven.repo.local=/root/.m2/repository
    02:27:14.985 [QUIET] [system.out] ++ dirname debian/do-component-build
    02:27:14.986 [QUIET] [system.out] + . debian/bigtop.bom
    02:27:14.986 [QUIET] [system.out] ++ ZOOKEEPER_VERSION=3.5.9
    02:27:14.986 [QUIET] [system.out] ++ HADOOP_VERSION=3.3.4
    02:27:14.986 [QUIET] [system.out] ++ HBASE_VERSION=2.4.13
    02:27:14.986 [QUIET] [system.out] ++ HIVE_VERSION=3.1.3
    02:27:14.986 [QUIET] [system.out] ++ TEZ_VERSION=0.10.1
    02:27:14.986 [QUIET] [system.out] ++ OOZIE_VERSION=5.2.1
    02:27:14.986 [QUIET] [system.out] ++ SOLR_VERSION=8.11.2
    02:27:14.986 [QUIET] [system.out] ++ SPARK_VERSION=3.5.5
    02:27:14.986 [QUIET] [system.out] ++ FLINK_VERSION=1.17.2
    02:27:14.986 [QUIET] [system.out] ++ PHOENIX_VERSION=5.1.2
    02:27:14.986 [QUIET] [system.out] ++ BIGTOP_GROOVY_VERSION=2.5.4
    02:27:14.986 [QUIET] [system.out] ++ BIGTOP_UTILS_VERSION=3.2.0-SNAPSHOT
    02:27:14.986 [QUIET] [system.out] ++ BIGTOP_SELECT_VERSION=3.2.0-SNAPSHOT
    02:27:14.986 [QUIET] [system.out] ++ BIGTOP_JSVC_VERSION=1.2.4
    02:27:14.986 [QUIET] [system.out] ++ ALLUXIO_VERSION=2.8.0
    02:27:14.986 [QUIET] [system.out] ++ KAFKA_VERSION=2.8.1
    02:27:14.986 [QUIET] [system.out] ++ YCSB_VERSION=0.17.0
    02:27:14.986 [QUIET] [system.out] ++ ZEPPELIN_VERSION=0.10.1
    02:27:14.986 [QUIET] [system.out] ++ GPDB_VERSION=5.28.5
    02:27:14.986 [QUIET] [system.out] ++ AMBARI_VERSION=2.7.5
    02:27:14.986 [QUIET] [system.out] ++ BIGTOP_AMBARI_MPACK_VERSION=2.7.5
    02:27:14.986 [QUIET] [system.out] ++ LIVY_VERSION=0.7.1
    02:27:14.986 [QUIET] [system.out] ++ RANGER_VERSION=2.4.0
    02:27:14.986 [QUIET] [system.out] ++ SQOOP_VERSION=1.4.7
    02:27:14.986 [QUIET] [system.out] ++ REDIS_VERSION=7.4.0
    02:27:14.986 [QUIET] [system.out] ++ DOLPHINSCHEDULER_VERSION=3.2.2
    02:27:14.986 [QUIET] [system.out] ++ DORIS_VERSION=2.1.7
    02:27:14.986 [QUIET] [system.out] ++ NIGHTINGALE_VERSION=7.7.2
    02:27:14.986 [QUIET] [system.out] ++ CATEGRAF_VERSION=0.4.1
    02:27:14.986 [QUIET] [system.out] ++ VICTORIAMETRICS_VERSION=1.109.1
    02:27:14.986 [QUIET] [system.out] ++ CLOUDBEAVER_VERSION=25.1.0
    02:27:14.986 [QUIET] [system.out] ++ CELEBORN_VERSION=0.5.3
    02:27:14.986 [QUIET] [system.out] ++ OZONE_VERSION=1.4.1
    02:27:14.986 [QUIET] [system.out] ++ IMPALA_VERSION=4.4.1
    02:27:14.986 [QUIET] [system.out] ++ TRINO_VERSION=474
    02:27:14.986 [QUIET] [system.out] ++ HUDI_VERSION=1.0.1
    02:27:14.986 [QUIET] [system.out] ++ PAIMON_VERSION=1.1.0
    02:27:14.986 [QUIET] [system.out] ++ ATLAS_VERSION=2.4.0
    02:27:14.986 [QUIET] [system.out] ++ SUPERSET_VERSION=4.1.2
    02:27:14.986 [QUIET] [system.out] ++ JDK_VERSION=1.8
    02:27:14.986 [QUIET] [system.out] ++ SCALA_VERSION=2.12.13
    02:27:14.986 [QUIET] [system.out] + make
    02:27:14.987 [QUIET] [system.out] make[2]: Entering directory '/opt/modules/bigtop/output/redis/redis-3-2-0-7.4.0'
    02:27:14.987 [QUIET] [system.out] cd src && make all
    
    
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    • 通过 source debian/bigtop.bom,所有组件版本一次性加载到当前 Shell。
    • 这就是为什么日志中会打印 ++ XXX_VERSION=... 的原因。
    • 任何依赖联动(如 HBase、Spark 与 Redis 兼容)都在这里解决。

    笔记

    DEB 与 RPM 都共享 bigtop.bom,这保证了版本的一致性。

    # 5. 正式 make 编译

    image-20250818141423594

    02:27:14.987 [QUIET] [system.out] cd src && make all
    make[1]: Entering directory '/opt/modules/bigtop/output/redis/redis-3-2-0-7.4.0/src'
        CC server.o
        CC redis-cli.o
        LINK redis-server
        LINK redis-cli
        LINK redis-benchmark
        INSTALL redis-check-rdb
        INSTALL redis-check-aof
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    • 进入 src 目录,执行标准的 make all。
    • 这里会构建出所有 Redis 二进制:redis-server、redis-cli、redis-benchmark、redis-check-* 等。
    • 最终产物安装到 debian/tmp/usr/bin,等待打包。
    #Redis#bigtop#编译日志#自动化构建#版本注入
    Step5-Debian下构造-rules
    Step7-Log-安装细节

    ← Step5-Debian下构造-rules Step7-Log-安装细节→

    最近更新
    01
    [/metrics/aggregated] — 聚合数据范围 检查点
    09-19
    02
    [/metrics] — 反向分析接口参数 请求抓包
    09-17
    03
    [/metrics] — 普通指标写入方法 POST
    09-17
    更多文章>
    Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式