完整的离线安装 Node.js 和 Node-RED 的脚本

#!/bin/bash

# 1. 安装 Node.js
echo "安装 Node.js..."

# 假设你已经下载了 node-v20.x.x-linux-x64.tar.xz 文件
# 修改成你实际存放文件的路径
NODE_TAR="/path/to/node-v20.5.1-linux-x64.tar.xz"
DEST_DIR="/usr/local/nodejs"

if [ ! -f "$NODE_TAR" ]; then
  echo "未找到 Node.js 安装包,请确保已下载 .tar.xz 文件"
  exit 1
fi

# 解压 Node.js
echo "解压 Node.js..."
tar -xf $NODE_TAR -C /usr/local

# 配置环境变量
echo "配置环境变量..."
echo 'export PATH=/usr/local/nodejs/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 验证 Node.js 是否安装成功
echo "验证 Node.js 安装..."
node -v
npm -v

if [ $? -ne 0 ]; then
  echo "Node.js 安装失败"
  exit 1
fi

# 2. 安装 Node-RED
echo "安装 Node-RED..."

# 假设你已经下载了 node-red-3.1.0.tgz 文件
# 修改成你实际存放文件的路径
NODE_RED_TAR="/path/to/node-red-3.1.0.tgz"

if [ ! -f "$NODE_RED_TAR" ]; then
  echo "未找到 Node-RED 安装包,请确保已下载 .tgz 文件"
  exit 1
fi

# 离线安装 Node-RED
echo "离线安装 Node-RED..."
npm install -g --unsafe-perm $NODE_RED_TAR

# 3. 配置 Node-RED 为开机自启
echo "配置 Node-RED 开机自启..."

cat <<EOF > /etc/systemd/system/node-red.service
[Unit]
Description=Node-RED
After=network.target

[Service]
ExecStart=/usr/local/nodejs/bin/node-red
Restart=always
User=$USER
Environment="HOME=/home/$USER"
WorkingDirectory=/home/$USER

[Install]
WantedBy=multi-user.target
EOF

# 重新加载 systemd 配置
echo "重新加载 systemd 配置..."
sudo systemctl daemon-reload

# 设置 Node-RED 开机自启
echo "启用 Node-RED 开机自启..."
sudo systemctl enable node-red

# 启动 Node-RED 服务
echo "启动 Node-RED 服务..."
sudo systemctl start node-red

# 4. 验证 Node-RED 是否运行
echo "验证 Node-RED 是否成功启动..."
sudo systemctl status node-red

if [ $? -eq 0 ]; then
  echo "Node-RED 启动成功"
else
  echo "Node-RED 启动失败,请检查日志"
fi

echo "安装完成"

使用说明:

  1. 将这个脚本保存为 install_node_red.sh 文件。
  2. 先确保你已经在一台联网的机器上下载了 Node.js 和 Node-RED 的压缩包。
  3. 将 Node.js 和 Node-RED 的 .tar.xz 和 .tgz 文件通过 U 盘或者局域网传输到目标 Ubuntu 机器。
  4. 在目标机器上运行以下命令来执行脚本:
chmod +x install_node_red.sh
./install_node_red.sh

脚本功能:

  • 安装 Node.js:从本地 .tar.xz 包安装并配置环境变量。
  • 安装 Node-RED:从本地 .tgz 包安装 Node-RED。
  • 设置 Node-RED 为开机自启:将 Node-RED 配置为开机自动启动。
  • 启动 Node-RED 服务:启动并检查 Node-RED 服务是否正常运行。

本网站所收集的公开资料部分来源于互联网,其版权归原作者本人所有,本站只是转载和摘录,目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其的真实性能做到合理的研判负责,也不构成任何其他建议,如果有任何侵犯您权益和知识产权的地方,请来邮或来电告知本站,经过核实,我们会及时的进行整理删除,谢谢!
评论 共0条
取消回复 发布评论