【第四篇】Node-RED安装

1.安装 Node-RED 官方一键脚本:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

但这条命令需要访问 GitHub,在国内会被墙,所以之前执行没有反应。

image

 pass

只能尝试第二套方案:

执行:curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

image

也失败了,报错 Failed to run 'apt update',原因还是 security.ubuntu.com 访问有问题。

没关系,直接用备用方案 这个也pass

只能用这个最终备用方案了:执行  sudo apt install -y nodejs npm

image

 

 

image

 执行 sudo apt install -y nodejs npm 安装 Node.js 和 npm,安装完成后验证版本:Node.js v18.19.1,npm 9.2.0,环境就绪。

 

一.执行安装命令 sudo npm install -g node-red

image

 执行 sudo npm install -g node-red 安装 Node-RED,共安装 278 个依赖包,耗时约 3 分钟。过程中出现 Unsupported engine 警告,原因是 Node-RED 最新版建议 Node.js v20+,当前版本为 v18,不影响正常使用

二.设置开机自启并启动服务:sudo systemctl enable nodered

image

 

报错了:Unit file nodered.service does not exist

原因是用 npm 全局安装的 Node-RED 没有自动创建 systemd 服务文件,需要用 PM2 来管理进程。

改用 PM2 方案,执行以下命令:

第一步:安装 PM2

bash
sudo npm install -g pm2

第二步:先启动 Node-RED

bash
pm2 start node-red

第三步:设置开机自启

bash
pm2 startup

第四步:保存配置

bash
pm2 save

🎉 Node-RED 启动成功!

看到关键信息:

  • status: online ✅ Node-RED 正在运行
  • PM2 Successfully daemonized ✅ 后台守护进程启动
  • Successfully saved ✅ 配置已保存

但注意 pm2 startup 输出了一条需要手动执行的命令,必须执行这条才能真正开机自启:

sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

image

🎉 开机自启设置成功!

关键信息:

  • Command successfully executed
  • Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service

安装 PM2 进程管理工具,用 pm2 start node-red 启动 Node-RED,执行 pm2 startup 生成开机自启命令,复制输出的完整命令执行后,PM2 成功创建 systemd 服务,虚拟机重启后 Node-RED 自动在后台运行。

现在验证 Node-RED 是否正常运行,执行:

 
bash
pm2 status

image

看到 status: errored ❌,Node-RED 启动失败了,需要查看错误原因。

执行:

bash
pm2 logs node-red --lines 30

image

原因很清楚了:

Node-RED requires Node.js v22.9 or later
Unsupported version of Node.js: v18.19.1

Node-RED 最新版需要 Node.js v22.9+,我们装的是 v18,版本太低。


解决方案:升级 Node.js 到 v22

node --version # v22.16.0 ✅

npm --version # 10.9.2 ✅

 

然后重新执行 sudo apt install -y nodejs npm

image

 

然后运行 http://192.168.112.130:1880

image

 

 

连接被拒绝,说明 Node-RED 虽然显示 online 但实际没有监听 1880 端口。

检查一下 Node-RED 的日志:

bash
pm2 logs node-red --lines 20

image

看到问题了:

 
Node-RED requires Node.js v22.9 or later
Unsupported version of Node.js: v18.19.1

PM2 启动 Node-RED 时用的还是旧的 Node.js v18,因为 PM2 是之前就安装的,它记住了旧的 PATH。

Ctrl+C 退出日志,然后执行:

bash
pm2 delete node-red
pm2 start $(which node-red)
pm2 save

🎉 成功了!

Starting /usr/local/bin/node-red in fork_mode (1 instance)
status: online ✅
mem: 23.4mb ✅

这次用的是 /usr/local/bin/node-red,走的是 v22 的路径,正确了!

现在打开浏览器访问:

http://192.168.112.130:1880

 

 

image

 

 

 

 

 

---------------------------------------------------------------------------------因为版本太低导致一系列的问题--------------------------------------------------------------------------------------------------------------------------------------------

二、尝试 nodesource 安装 Node.js v22(失败)
 
bash
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

结果: Error: Failed to run 'apt update'

原因: nodesource 的脚本会访问 security.ubuntu.com,该地址在当前网络环境下签名验证失败。


三、改用 apt 安装 Node.js v18(成功,但版本不够)
 
bash
sudo apt install -y nodejs npm

安装成功,版本为:

  • Node.js:v18.19.1
  • npm:9.2.0

安装 Node-RED:

 
bash
sudo npm install -g node-red

安装成功,但启动报错:

 
Node-RED requires Node.js v22.9 or later
Unsupported version of Node.js: v18.19.1

原因: Node-RED 最新版本要求 Node.js v22.9+,v18 版本太低。


四、升级 Node.js 到 v22(通过阿里云镜像)

先卸载旧版:

 
bash
sudo apt remove -y nodejs npm
sudo apt autoremove -y

尝试通过 nvm 安装失败(GitHub 和 Gitee 均无法访问),最终改用阿里云镜像直接下载二进制包

 
bash
# 下载 Node.js v22.16.0 二进制包(阿里云镜像)
wget https://mirrors.aliyun.com/nodejs-release/v22.16.0/node-v22.16.0-linux-x64.tar.xz

# 解压
tar -xf node-v22.16.0-linux-x64.tar.xz

# 复制到系统目录
sudo cp -r node-v22.16.0-linux-x64/* /usr/local/

# 更新 PATH 并永久生效
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

验证版本:

 
bash
node --version   # v22.16.0 ✅
npm --version    # 10.9.2 ✅

五、重新安装 Node-RED
 
bash
sudo npm install -g node-red

这次没有版本警告,安装顺利完成。


六、用 PM2 管理 Node-RED 进程

Node-RED 通过 npm 全局安装后没有 systemd 服务文件,使用 PM2 进行进程管理:

 
bash
# 安装 PM2
sudo npm install -g pm2

# 启动 Node-RED
pm2 start node-red

# 生成开机自启配置
pm2 startup

# 执行 pm2 startup 输出的命令(复制粘贴执行)
sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

# 保存进程列表
pm2 save

验证运行状态:

 
bash
pm2 status

看到 status: online 说明 Node-RED 正在后台运行。

image

 

posted @ 2026-06-25 16:35  WaitLove  阅读(8)  评论(0)    收藏  举报