Skip to content

在 openWrt 操作系统上安装 node.js 步骤

一、详细安装步骤

  1. 下载 Node.js 14.x 版本

    sh
    wget https://nodejs.org/dist/v14.21.3/node-v14.21.3-linux-arm64.tar.gz
  2. 解压文件到指定目录

    sh
    sudo mkdir -p /usr/local/lib/nodejs
    sudo tar -xzf node-v14.21.3-linux-arm64.tar.gz -C /usr/local/lib/nodejs/
  3. 设置环境变量

    sh
    export PATH=/usr/local/lib/nodejs/node-v14.21.3-linux-arm64/bin:$PATH
    echo 'export PATH=/usr/local/lib/nodejs/node-v14.21.3-linux-arm64/bin:$PATH' >> ~/.profile
    source ~/.profile
  4. 验证安装

    sh
    node -v
    npm -v

sh
# 删除现有的目录
sudo rm -rf /usr/local/lib/nodejs/node-v18.17.0-linux-arm64

# 确保有足够的权限
sudo chown -R $(whoami):$(whoami) /usr/local/lib/nodejs

# 重新解压文件到指定目录
sudo tar -xzf node-v18.17.0-linux-arm64.tar.gz -C /usr/local/lib/nodejs/

# 设置环境变量
export PATH=/usr/local/lib/nodejs/node-v18.17.0-linux-arm64/bin:$PATH
echo 'export PATH=/usr/local/lib/nodejs/node-v18.17.0-linux-arm64/bin:$PATH' >> ~/.profile
source ~/.profile

# 检查Node.js和npm版本
node -v
npm -v

二、遇到的错误

安装了 18.17.0 的时候遇到下面的错误:

bash
root@hificloud:~# node -v
node: /lib/libc.so.6: version GLIBC_2.28' not found (required by node)
root@hificloud:~# npm -v
node: /lib/libc.so.6: version GLIBC_2.28' not found (required by node)
root@hificloud:~#

系统上缺少 Node.js 依赖的 GLIBC_2.28 版本。OpenWrt 使用的是较轻量级的库,可能没有预装较新的 GLIBC 版本。你可以尝试以下方法来解决这个问题:

你的系统上缺少 Node.js 依赖的 GLIBC_2.28 版本。OpenWrt 使用的是较轻量级的库,可能没有预装较新的 GLIBC 版本。你可以尝试以下方法来解决这个问题:

1. 使用较旧的 Node.js 版本

你可以选择一个与当前 GLIBC 版本兼容的较旧的 Node.js 版本。对于 OpenWrt 18.06-SNAPSHOT 系统,Node.js 12.x 或 14.x 版本可能更兼容。

下载并安装 Node.js 14.x 版本:

2. 升级 GLIBC

升级 GLIBC 是一项复杂且有风险的操作,尤其是在嵌入式系统上。一般不推荐在 OpenWrt 上执行此操作,除非你有足够的经验并了解潜在风险。需要重新编译和安装 GLIBC,并确保系统的稳定性。

三、查看操作系统版本

登录服务器

sh
ssh root@172.20.5.85 -p 12038

查看版本信息

sh
root@hificloud:~# cat /etc/os-release
NAME="OpenWrt"
VERSION="18.06-SNAPSHOT"
ID="openwrt"
ID_LIKE="lede openwrt"
PRETTY_NAME="OpenWrt 18.06-SNAPSHOT"
VERSION_ID="18.06-snapshot"
HOME_URL="http://openwrt.org/"
BUG_URL="http://bugs.openwrt.org/"
SUPPORT_URL="http://forum.lede-project.org/"
BUILD_ID="r0-c8fa8390"
LEDE_BOARD="realtek/rtd1619b"
LEDE_ARCH="aarch64_cortex-a55"
LEDE_TAINTS="no-all glibc busybox"
LEDE_DEVICE_MANUFACTURER="OpenWrt"
LEDE_DEVICE_MANUFACTURER_URL="http://openwrt.org/"
LEDE_DEVICE_PRODUCT="Generic"
LEDE_DEVICE_REVISION="v0"
LEDE_RELEASE="OpenWrt 18.06-SNAPSHOT r0-c8fa8390"
root@hificloud:~#

四、部署错误

前端出现错误:

hello.html:13 Mixed Content: The page at 'https://docs.ffffee.com/hello.html' was loaded over HTTPS, but requested an insecure resource 'http://192.168.0.126:3333/hello'. This request has been blocked; the content must be served over HTTPS.
hello.html:23
[TypeError: Failed to fetch
    at https://docs.ffffee.com/hello.html:13:10]
hook-exec.js:1 Another version of Vue Devtools seems to be installed. Please enable only one version at a time.

alt text