TT Bigdata TT Bigdata
首页
  • 部署专题

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

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

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

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

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

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

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

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

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

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

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

JaneTTR

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

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

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

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

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

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

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

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

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

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

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

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

    • Step0-源码获取
    • Step1-构建规范的bom
    • Step2-Redis源代码编译
    • Step3-源代码编译脚本构造
    • Step4-buildroot处理
      • 归集流程概览
      • install_redis.sh 脚本内容
      • 目录结构效果示意
    • Step6-Log-编译细节
    • Step7-Log-安装细节
    • Step8-Log-制品细节
    • Step9-版本适配器
  • Bigtop打包部分

  • Ambari部分

  • J-Redis集成-F
  • Bigtop通用部分
JaneTTR
2025-06-24
目录

Step4-buildroot处理

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

为什么要处理 buildroot?

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

# 归集流程概览

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

步骤 说明
1. 创建脚本 编写 install_redis.sh,定义迁移与整理逻辑
2. 目录初始化 按标准规范创建 bin、lib、etc、doc、man、var 等目录
3. 产物拷贝 按需将编译产物、配置文件、文档等拷贝进 buildroot
4. 链接优化 创建软链接、剔除冗余、保证路径兼容

image-20250624222953520

# install_redis.sh 脚本内容

# 目录结构效果示意

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

/BUILDROOT/
 ├── usr/
 │   ├── lib/redis/
 │   │     ├── src/       # redis 可执行文件
 │   │     ├── redis-*    # redis 主程序与组件
 │   │     ├── *.so
 │   │     ├── redis.conf -> /etc/redis/redis.conf
 │   │     └── sentinel.conf -> /etc/redis/sentinel.conf
 │   ├── share/doc/redis/ # 文档
 │   ├── share/man/man1/  # man 帮助
 │   └── etc/redis/
 │         ├── conf.empty/
 │         ├── redis.conf
 │         └── sentinel.conf
 └── var/log/redis/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

后续补充说明

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

  • 👉 Step7-Log-安装细节
  • 👉 Step8-Log-制品细节
#Redis#bigtop#BOM文件#编译集成
Step3-源代码编译脚本构造
Step6-Log-编译细节

← Step3-源代码编译脚本构造 Step6-Log-编译细节→

最近更新
01
bigtop-select 打包缺 compat 报错修复 deb
07-16
02
bigtop-select 打包缺 control 文件报错修复 deb
07-16
03
首次编译-环境初始化 必装
07-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式