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

在Alpine系统中切换至Node.js v20版本的命令咨询

问题

Serverless 要求 Node.js 版本 >18,我在部署脚本中添加了以下命令:

$ apk add nodejs --no-cache --repository="http://dl-cdn.alpinelinux.org/alpine/v3.20/main/" --allow-untrusted

fetch http://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
OK: 821 MiB in 153 packages

$ apk add npm --no-cache --repository="http://dl-cdn.alpinelinux.org/alpine/v3.20/main/" --allow-untrusted

fetch http://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
OK: 821 MiB in 153 packages

$ node --version
v14.21.3

执行后 Node.js 版本还是 v14.21.3,请问需要执行什么命令才能切换到 Alpine v3.20 仓库中的新版本 Node.js?

解决方案

问题出在系统默认的 Alpine v3.14 仓库优先级更高,且你已经安装了该仓库中的 Node.js v14。即使指定了 v3.20 仓库,apk 会优先保留已安装的旧版本,不会自动替换为新仓库的新版本。

你可以按以下步骤操作:

  1. 卸载旧版本的 Node.js 和 npm
apk del nodejs npm
  1. 从 Alpine v3.20 仓库重新安装 Node.js 和 npm
apk add nodejs npm --no-cache --repository="http://dl-cdn.alpinelinux.org/alpine/v3.20/main/" --allow-untrusted

执行完成后,运行 node --version 就能看到 v3.20 仓库中的新版本 Node.js 了(通常是 v20.x 版本,满足 >18 的要求)。

如果不想卸载重装,也可以尝试强制升级命令,但卸载重装的方式更稳妥,能避免版本依赖冲突:

apk upgrade nodejs npm --no-cache --repository="http://dl-cdn.alpinelinux.org/alpine/v3.20/main/" --allow-untrusted

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:02:02