树莓派3B+安装node-red-node-sqlite触发node-gyp报错如何解决?
树莓派3B+ Node-RED安装node-red-node-sqlite报错解决方案
错误根因分析
- 你使用的Node.js版本为14.18.1,对应的node-red-node-sqlite依赖的sqlite3@4.2.0没有适配armv7架构+node-v83 ABI的预编译二进制包,预编译包下载请求返回403后触发源码编译流程
- 源码编译阶段node-gyp拉取对应依赖时出现网络连接中断(ECONNRESET),直接导致编译失败
修复步骤
- 先安装系统层面的编译依赖,避免编译阶段缺失基础组件
sudo apt update && sudo apt install -y build-essential python3-dev libsqlite3-dev
- 调整npm配置为国内镜像,解决官方源网络不稳定问题
npm config set registry https://registry.npmmirror.com npm config set node_sqlite3_binary_host_mirror https://npmmirror.com/mirrors/sqlite3
- 进入Node-RED用户目录执行安装,添加权限参数避免树莓派下权限报错
cd ~/.node-red npm install --unsafe-perm node-red-node-sqlite
- 安装完成后重启Node-RED服务,即可在节点面板找到sqlite节点使用
替代方案
如果上述步骤仍安装失败,可以选择安装纯JS实现的sqlite驱动节点,不需要源码编译,兼容性更强:
cd ~/.node-red npm install node-red-contrib-sqlite3
内容的提问来源于stack exchange,提问作者Josari
相关产品推荐
相关产品推荐

