[B] Doris 版本适配改造(三)
# 第三步:禁用 submodule 自动下载,彻底固化 thirdparty 依赖
Doris 官方 build.sh 默认会通过 update_submodule
拉取子包(如 apache-orc、clucene),这在生产环境下极易导致构建结果漂移、依赖失控
。
本节将指导你如何应用专属补丁彻底关闭官方子包自动拉包,全部依赖走本地归档,确保编译稳定可控。
# 1. 补丁放置路径与说明
补丁完整内容请放在:
bigtop-packages/src/common/doris/patch1-NOT-USING-SUBMODULE.diff
1
该补丁将在 Doris 组件的 Bigtop 集成打包时自动应用。
# 2. 完整的diff内容
Subject: [PATCH] optimized: 不使用 doris 的 下载子包,因为子包会变
---
Index: build.sh
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/build.sh b/build.sh
--- a/build.sh (revision 37f5d3ec9fb2933345c4411d9a581c84062f3de6)
+++ b/build.sh (date 1736594835875)
@@ -501,8 +501,8 @@
# Clean and build Backend
if [[ "${BUILD_BE}" -eq 1 ]]; then
- update_submodule "be/src/apache-orc" "apache-orc" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/orc.tar.gz"
- update_submodule "be/src/clucene" "clucene" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/clucene.tar.gz"
+# update_submodule "be/src/apache-orc" "apache-orc" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/orc.tar.gz"
+# update_submodule "be/src/clucene" "clucene" "https://ghgo.xyz/https://github.com/apache/doris-thirdparty/archive/refs/heads/clucene.tar.gz"
if [[ -e "${DORIS_HOME}/gensrc/build/gen_cpp/version.h" ]]; then
rm -f "${DORIS_HOME}/gensrc/build/gen_cpp/version.h"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- 核心变更:注释掉所有
update_submodule
调用,彻底屏蔽官方远程拉包。 - 后续依赖只认本地 thirdparty 归档,确保可控、可复现。
# 3. 应用方式与集成说明
# 补丁生效位置
补丁会在 Bigtop Doris 组件的 RPM/SPEC 构建流程自动打上,无需手工 patch。
- 如果你有自定义构建链路,请手动将 diff 应用到 Doris 源码 build.sh。
# 补丁作用时机
- 应用补丁后,所有 Doris 构建均不再触发子包远程拉取,全部走本地包。
- 若本地 thirdparty 目录无包,则构建会直接失败,避免依赖意外变动。
# 4. 终端反馈与图片关联说明
提示
如上图,构建全流程无任何 update_submodule
拉包输出,所有依赖都从本地归档加载。不再出现外网依赖超时、404、内容漂移等问题
,产物可溯源,构建强一致。
# 5. 固化 thirdparty 依赖的目录要求
所有 thirdparty 包建议提前手动归档到构建环境本地,例如:
thirdparty/
├── apache-orc-xxx.tar.gz
├── clucene-xxx.tar.gz
├── ...
1
2
3
4
2
3
4
- 文件名需与构建脚本严格一致。
- 新增依赖、升级包时请先归档本地并全局替换包名。
# 6. 获取本地 thirdparty 固定包
目前,Doris 编译所需的全部 thirdparty 子包我们已做本地归档管理,确保每次构建环境完全一致。
笔记
如需获取 Doris 适配专用的 thirdparty 固定依赖包(包含所有常用子包),或希望复现本文档中的本地构建环境,欢迎联系作者。环境包归档
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16