ebpf-code-legacy 包会下载由反向条件选择的 kernel-collector 版本
作者: vkalintiris创建于 2026年8月23日更新于 2026年8月24日
标签area/build
问题 packaging/cmake/Modules/NetdataEBPFLegacy.cmake 通过测试 BUILD_SHARED_LIBS 来决定要下载哪个内核采集器 tarball 风格 (glibc/musl/static):
if(DEFINED BUILD_SHARED_LIBS)
if(NOT BUILD_SHARED_LIBS)
set(need_static TRUE)
endif()
endif()
(NetdataEBPFLegacy.cmake:14-18)
但是 CMakeLists.txt:26 将该变量设置为与 STATIC_BUILD 相同的值:
set(BUILD_SHARED_LIBS "${STATIC_BUILD}")
因此选择与其表面意图相反:
- 正常构建(
STATIC_BUILD=Off,即每个 DEB 和 RPM) 将BUILD_SHARED_LIBS=OFF→need_static=TRUE→ 下载netdata-kernel-collector-static-*.tar.xz; - 静态构建(
STATIC_BUILD=On) 将BUILD_SHARED_LIBS=ON→ 通过到 libc 检测 → 下载glibc/musl风格。
同级模块通过直接测试意图来正确执行(NetdataLibBPF.cmake:35-37):
if(STATIC_BUILD)
set(need_static TRUE)
endif()
为什么这是一个问题而不是仅仅是一个修复措施
内容来源: netdata/netdata