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

Yocto Kirkstone分支构建Chirpstack时Yarn拉取包失败

解决Yocto Kirkstone构建Chirpstack时Yarn DNS解析失败问题

针对你遇到的Yarn拉取包时出现getaddrinfo EAI_AGAIN registry.yarnpkg.com错误,以下是几个可行的解决步骤:

  • 检查构建环境的DNS解析能力
    在执行bitbake的终端中运行nslookup registry.yarnpkg.com,确认是否能正常解析域名。如果解析失败,说明构建终端的DNS配置有问题,可手动修改/etc/resolv.conf添加可靠的DNS服务器(比如8.8.8.8),并在local.conf中添加以下配置确保构建环境继承DNS设置:

    BB_ENV_EXTRAWHITE += "RESOLV_CONF"
    RESOLV_CONF = "/etc/resolv.conf"
    
  • 替换Yarn镜像源为国内镜像
    原官方镜像访问不稳定,可修改Chirpstack的recipe,在编译前切换到国内npm镜像:
    打开meta-ir-chirpstack/recipes-chirpstack/chirpstack/chirpstack_4.3.0.bb,添加以下内容:

    do_compile_prepend() {
        cd ${S}/git/ui
        yarn config set registry https://registry.npmmirror.com/
    }
    

    或者在构建前临时设置环境变量:

    export YARN_REGISTRY=https://registry.npmmirror.com/ && bitbake chirpstack
    
  • 检查Yocto网络限制配置
    检查build/conf/local.conf中是否设置了BB_NO_NETWORK = "1",如果有则注释掉该配置,因为Chirpstack前端构建需要联网拉取依赖。如果你的环境使用代理,需在local.conf中添加代理配置:

    HTTP_PROXY = "http://你的代理地址:端口/"
    HTTPS_PROXY = "http://你的代理地址:端口/"
    NO_PROXY = "localhost,127.0.0.1,registry.npmmirror.com"
    BB_ENV_EXTRAWHITE += "HTTP_PROXY HTTPS_PROXY NO_PROXY"
    
  • 预缓存依赖包到本地
    手动下载https://registry.yarnpkg.com/@ant-design/colors/-/colors-6.0.0.tgz,找到Yarn缓存目录(运行yarn cache dir查看),将包放入对应缓存路径。然后修改recipe中的yarn install命令为yarn install --offline,强制使用本地缓存。

  • 升级Yarn版本
    Yarn v1.22.18可能存在DNS解析的兼容性问题,可尝试升级Yarn版本。在构建环境中安装更高版本的Yarn(比如v1.22.22),并确保构建时使用新版本执行依赖拉取。

内容的提问来源于stack exchange,提问作者PYuan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:10:37