解读-bigtop-select支持deb全网首创
背景说明
在大数据平台自动化部署体系中,bigtop-select 是环境切换、版本隔离的基础工具。然而,Bigtop 官方主力仍在 RedHat/CentOS(rpm 体系),对于 Ubuntu/Debian(deb 体系)并未同步完善 bigtop-select 支持,直接导致源码编译时出现缺失与报错。
# 一、源码目录现状分析
我们以官方仓库为例,打开 bigtop-packages/src/deb
目录,可以发现 bigtop-select 根本不存在:
官方现状
Bigtop 在 deb 体系下,没有 bigtop-select 目录,也没有对应的 control、rules、install 脚本文件,rpm 体系下才是完整的。
# 二、编译报错现象复现
在没有任何手动补全的情况下,直接执行 gradle bigtop-select-pkg
编译指令:
- 构建会直接 fail,报错内容核心是:找不到 deb 体系下 bigtop-select 的相关脚本/目录。
典型报错说明
实际就是找不到 deb 包的构建规则与资源,build 脚本入口被掐断,后续一切自动化流程也会终止。
# 三、先看结果
假设你已经补齐了 deb 下的目录,成功构建后会看到如下效果(实际操作路径与产物展示):
root@ubuntu22:/opt/modules/bigtop/output/bigtop-select# ll
total 72
drwxr-xr-x 2 root root 4096 Jul 16 14:14 ./
drwxr-xr-x 8 root root 4096 Jul 16 14:14 ../
-rw-r--r-- 1 root root 11846 Jul 16 14:14 bigtop-select_3.2.0-1_all.deb
-rw-r--r-- 1 root root 6499 Jul 16 14:14 bigtop-select_3.2.0-1_amd64.build
-rw-r--r-- 1 root root 5818 Jul 16 14:14 bigtop-select_3.2.0-1_amd64.buildinfo
-rw-r--r-- 1 root root 1014 Jul 16 14:14 bigtop-select_3.2.0-1_amd64.changes
-rw-r--r-- 1 root root 16186 Jul 16 14:14 bigtop-select_3.2.0-1.diff.gz
-rw-r--r-- 1 root root 831 Jul 16 14:14 bigtop-select_3.2.0-1.dsc
-rw-r--r-- 1 root root 1433 Jul 16 14:14 bigtop-select_3.2.0-1_source.changes
-rw-r--r-- 1 root root 4157 Jul 16 14:14 bigtop-select_3.2.0.orig.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
这些截图正对应最终产物产出,说明 deb 体系下的 bigtop-select 已经能正常编译、打包、分发。
# 四、解决思路与操作概要
# 对比 rpm 与 deb 体系的目录结构
体系 | 脚本目录结构 | 默认支持 |
---|---|---|
rpm | 有完整 bigtop-select 目录及 spec | ✅ |
deb | 缺少 bigtop-select 目录及 control | ❌ |
笔记
解决的本质: 只需要把 rpm 下 bigtop-select 的 install 逻辑和主文件,按 deb 包打包标准,迁移到 deb 目录,包含 control、rules、install 文件即可。
# 五、整体解决办法
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16