Step5-Debian下构造-dirs
# 1. 文件位置
在 Redis 打包目录下,dirs
文件放置在:
bigtop-packages/src/deb/redis/redis.dirs
1
2
3
2
3
命名规范
- 文件名前缀 必须与
control
文件中 Package 名称保持一致; - Redis 采用单包模式,因此只有一个
redis.dirs
; - Hadoop 等大型组件往往是多子包模式,会出现
hadoop-common.dirs
、hadoop-hdfs.dirs
等多个文件。
# 2. 作用与原理
*.dirs
文件主要解决 打包阶段目录结构缺失的问题。它的功能相当于:
install -d -m 755 目标目录
1
作用包括:
目录预创建:确保打包时目标路径已经存在,避免
install
/cp
报错。结构标准化:提前定义好
/etc
、/var/lib
、/usr/lib
等关键目录。受 compat 影响:
- compat=9 → 路径会自动映射到
debian/tmp
下; - compat>9 → 部分路径会被解析为宿主机绝对路径,容易导致冲突。
- 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
2
3
4
5
我们在实践中还引入了 占位符替换机制,由构建工具在编译时解析成实际路径。 这样做的好处是:在 bigtop 版本升级时无需手动修改,大幅减少维护成本。
# 4. 生成结果
完成配置后,最终生成的 deb 包示例如下:
redis_7.4.0-1_amd64.deb
1
命名规则拆解:
字段 | 含义 |
---|---|
redis | 来自 control 的 Package 名称 |
7.4.0 | 组件版本号 |
-1 | release 版本号 |
amd64 | 架构 |
- 01
- [/metrics/aggregated] — 聚合数据范围 检查点09-19
- 02
- [/metrics] — 反向分析接口参数 请求抓包09-17
- 03
- [/metrics] — 普通指标写入方法 POST09-17