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
        • 1. 文件位置
        • 2. 作用与原理
        • 3. 示例内容
        • 4. 生成结果
      • 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
目录

Step5-Debian下构造-dirs

# 1. 文件位置

在 Redis 打包目录下,dirs 文件放置在:


bigtop-packages/src/deb/redis/redis.dirs

1
2
3

命名规范

  • 文件名前缀 必须与 control 文件中 Package 名称保持一致;
  • Redis 采用单包模式,因此只有一个 redis.dirs;
  • Hadoop 等大型组件往往是多子包模式,会出现 hadoop-common.dirs、hadoop-hdfs.dirs 等多个文件。

# 2. 作用与原理

*.dirs 文件主要解决 打包阶段目录结构缺失的问题。它的功能相当于:

install -d -m 755 目标目录
1

作用包括:

  1. 目录预创建:确保打包时目标路径已经存在,避免 install/cp 报错。

  2. 结构标准化:提前定义好 /etc、/var/lib、/usr/lib 等关键目录。

  3. 受 compat 影响:

    • compat=9 → 路径会自动映射到 debian/tmp 下;
    • compat>9 → 部分路径会被解析为宿主机绝对路径,容易导致冲突。

注意

推荐固定使用 compat=9,避免高版本 debhelper 误将 /etc 等目录映射到宿主机系统路径,从而破坏宿主环境。

# 3. 示例内容

以 Redis 为例,redis.dirs 文件的内容如下:

/etc/redis
/var/lib/redis
/usr/bin
/usr/lib/redis
/usr/share/doc/redis
1
2
3
4
5

我们在实践中还引入了 占位符替换机制,由构建工具在编译时解析成实际路径。 这样做的好处是:在 bigtop 版本升级时无需手动修改,大幅减少维护成本。

image-20250818124903805

# 4. 生成结果

完成配置后,最终生成的 deb 包示例如下:

redis_7.4.0-1_amd64.deb
1

命名规则拆解:

字段 含义
redis 来自 control 的 Package 名称
7.4.0 组件版本号
-1 release 版本号
amd64 架构
#Ubuntu22.04#Redis#bigtop#buildroot#DEB打包
Step5-Debian下构造-copyright
Step5-Debian下构造-install

← Step5-Debian下构造-copyright Step5-Debian下构造-install→

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