#23604·netdata

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=OFFneed_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