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处理
        • 归集流程概览
        • install_redis.sh 脚本内容
        • 目录结构效果示意
      • 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-08-18
目录

Step4-buildroot处理

在完成组件编译后,如何将产物标准化迁移到打包目录,成为 RPM/DEB 集成链路的关键一环。只有严格按照 buildroot 的要求归集文件,才能保证后续打包工具(如 dpkg-deb、debhelper)能够正确识别、打包出标准的 Linux 发行件。

为什么要处理 buildroot?

  1. 隔离编译与打包:编译目录通常包含临时文件、测试文件等杂项,直接用于打包极易引入冗余或脏数据。
  2. 标准化路径结构:不同组件、不同平台对文件路径有严格要求。例如 bin、lib、etc、man、doc 必须落在固定目录,否则会导致服务启动或包安装异常。
  3. 后续运维友好:标准的目录结构方便自动化部署、升级、运维等后续工作。

# 归集流程概览

以下为 Redis 在 bigtop-packages/src/common/redis 下典型的归集操作步骤:

步骤 说明
1. 创建脚本 编写 install_redis.sh,定义迁移与整理逻辑
2. 目录初始化 按 Debian/Ubuntu 规范创建 usr/bin、usr/lib、etc/redis、
usr/share/doc、usr/share/man、lib/systemd/system、
var/{log,lib}/redis 等目录
3. 产物拷贝 将编译产物、配置文件、文档等拷贝进 buildroot;同时做 strip、权限与 shebang 规范化
4. 链接优化 创建软链接、剔除冗余、保证路径兼容(如 /usr/bin/redis-cli 指向统一落盘点)
5. 元信息补全 写入 README.Debian、示例配置、
postinst/prerm(若走 debhelper 则放 debian/ 目录下)

image-20250624222953520

# install_redis.sh 脚本内容

redhat和debian融合写法

# 目录结构效果示意

迁移完成后,整个 buildroot 下 Redis 的组织结构类似如下:

特别注意

这个是Ubuntu环境,编译的目录和redhat有区别。这个编译目录在output/组件名称/组件名称-bigtop版本-组件版本

(base) root@ubuntu22:/opt/modules/bigtop/output/redis/redis-3-2-0-7.4.0# tree -d
.
|-- debian
|   `-- source
|-- deps
|   |-- fpconv
|   |-- hdr_histogram
|   |-- hiredis
|   |   |-- adapters
|   |   |-- examples
|   |   `-- fuzzing
|   |-- jemalloc
|   |   |-- bin
|   |   |-- build-aux
|   |   |-- doc
|   |   |-- doc_internal
|   |   |-- include
|   |   |   |-- jemalloc
|   |   |   |   `-- internal
|   |   |   `-- msvc_compat
|   |   |       `-- C99
|   |   |-- m4
|   |   |-- msvc
|   |   |   |-- projects
|   |   |   |   |-- vc2015
|   |   |   |   |   |-- jemalloc
|   |   |   |   |   `-- test_threads
|   |   |   |   `-- vc2017
|   |   |   |       |-- jemalloc
|   |   |   |       `-- test_threads
|   |   |   `-- test_threads
|   |   |-- scripts
|   |   |   |-- freebsd
|   |   |   |-- linux
|   |   |   `-- windows
|   |   |-- src
|   |   `-- test
|   |       |-- analyze
|   |       |-- include
|   |       |   `-- test
|   |       |-- integration
|   |       |   `-- cpp
|   |       |-- src
|   |       |-- stress
|   |       `-- unit
|   |-- linenoise
|   `-- lua
|       |-- doc
|       |-- etc
|       |-- src
|       `-- test
|-- src
|   |-- commands
|   `-- modules
|-- tests
|   |-- assets
|   |-- cluster
|   |   |-- tests
|   |   |   |-- helpers
|   |   |   `-- includes
|   |   `-- tmp
|   |-- helpers
|   |-- integration
|   |-- modules
|   |-- sentinel
|   |   |-- tests
|   |   |   |-- helpers
|   |   |   `-- includes
|   |   `-- tmp
|   |-- support
|   |-- tmp
|   `-- unit
|       |-- cluster
|       |-- moduleapi
|       `-- type
`-- utils
    |-- create-cluster
    |-- graphs
    |   `-- commits-over-time
    |-- hyperloglog
    |-- lru
    |-- releasetools
    |-- req-res-validator
    `-- srandmember

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85

后续补充说明

本节暂不详细解读 install_redis.sh 脚本的具体实现逻辑。 原因很简单: 当前阶段直接讲解脚本内容会让人“一头雾水”,容易陷入细节,而忽略整体流程。后续章节将专门展开讲解,结合实际打包过程、RPM 结构,以及与 SPEC 脚本的集成场景来逐步拆解。 请关注后续补充章节:

  • 👉 Step7-Log-安装细节
  • 👉 Step8-Log-制品细节
#Ubuntu22.04#Redis#bigtop#buildroot#DEB打包
Step8-Log-制品细节
Step5-Debian下构造-source

← Step8-Log-制品细节 Step5-Debian下构造-source→

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