You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RedisTimeSeries的Yocto配方编写及编译错误排查求助

RedisTimeSeries的Yocto配方编写及编译错误排查求助

看起来你在给RedisTimeSeries编写Yocto配方时遇到了几个典型的交叉编译和依赖配置问题,我来帮你一步步拆解解决:

先梳理你遇到的核心错误原因:

  1. whoami: command not found:Yocto的默认编译环境不包含这个工具,它属于shadow工具集的一部分,需要添加对应native包到编译依赖。
  2. openssl/ssl.h: No such file or directory:编译系统找不到OpenSSL的头文件,说明依赖配置没让编译流程正确识别OpenSSL的开发文件,同时RedisTimeSeries的Makefile默认走了x86_64编译路径,没适配你的ARM交叉编译环境。
  3. Python依赖问题:你不想让Python出现在目标镜像里,但当前的依赖写法混淆了编译时依赖和运行时依赖,需要调整。

修改后的配方及详细说明:

SUMMARY = "Time Series data structure for Redis"
DESCRIPTION = "RedisTimeSeries is a time-series database (TSDB) module for Redis, by Redis."
HOMEPAGE = "https://github.com/RedisTimeSeries/RedisTimeSeries"
LICENSE = "CLOSED"

SRC_URI = "gitsm://github.com/RedisTimeSeries/RedisTimeSeries;branch=1.8;rev=v1.8.10"
S = "${WORKDIR}/git"

# 编译时依赖:native包仅在构建主机使用,不会进入目标镜像
DEPENDS += "python3-native openssl-dev shadow-native"
# 运行时仅依赖Redis,满足你不想带Python的需求
RDEPENDS:${PN} = "redis"

do_compile() {
    # 传递交叉编译工具链参数,强制适配ARM架构,避免默认编译x64版本
    oe_runmake CC="${CC}" AR="${AR}" LD="${LD}" \
        CFLAGS="${CFLAGS} -I${STAGING_INCDIR}/openssl" \
        LDFLAGS="${LDFLAGS} -L${STAGING_LIBDIR}"
}

# 手动指定模块安装路径,确保Redis能加载到
do_install() {
    install -d ${D}${libdir}/redis/modules
    install -m 0644 ${S}/bin/linux-*-release/redistimeseries.so ${D}${libdir}/redis/modules/
}

# 确保模块文件被正确打包
FILES:${PN} += "${libdir}/redis/modules/redistimeseries.so"

关键修改点解释:

  • 依赖调整:
    • 用python3-native替代普通python3:native包仅在编译阶段生效,不会被打包到目标镜像,完美解决你不想带Python的诉求。
    • 添加openssl-dev:提供OpenSSL的头文件和开发库,直接解决头文件找不到的问题。
    • 添加shadow-native:补充whoami工具,解决命令缺失的错误。
  • 交叉编译适配:
    • 用oe_runmake替代直接make,它会自动兼容Yocto的环境变量,同时手动指定CC/AR/LD等交叉编译工具,纠正Makefile默认编译x86_64版本的问题(从你的日志里linux-x64-release能看出默认架构不对)。
    • 通过CFLAGS和LDFLAGS明确指定OpenSSL的头文件和库路径,确保编译系统能准确定位到依赖文件。
  • 安装逻辑补充:默认Makefile不会自动把模块安装到Redis的标准路径,手动添加do_install和FILES配置,保证模块能被Redis识别并打包进最终镜像。

备注:内容来源于stack exchange,提问作者Toon Van Eyck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:19:27