当前位置: 首页 > web >正文

Ubuntu 安装 Node.js 指定版本指南

Ubuntu 安装 Node.js 指定版本指南(适用于生产与开发环境)

在没有安装 NVM 的服务器环境中(如 Docker、CI/CD、虚拟机等),建议使用 Node.js 官方的二进制包源(PPA)来快速安装特定版本的 Node.js。本指南将展示如何在 Ubuntu/Debian 系统中通过 NodeSource 官方 PPA 安装 Node.js 的 LTS 与最新版本。


一、安装 Node.js 20(当前活跃 LTS)

适合最新项目开发和维护:

# 1. 添加 NodeSource 源
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -# 2. 安装 Node.js 20
sudo apt-get install -y nodejs# 3. 验证安装
node -v
npm -v

二、安装 Node.js 18(长期支持版本 LTS)

适合已有系统兼容性较好的 LTS 项目:

# 1. 添加 NodeSource 源
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -# 2. 安装 Node.js 18
sudo apt-get install -y nodejs# 3. 验证安装
node -v
npm -v

三、安装 Node.js 16(维护阶段的旧 LTS)

适合旧系统或历史项目兼容需求:

# 1. 添加 NodeSource 源
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -# 2. 安装 Node.js 16
sudo apt-get install -y nodejs# 3. 验证安装
node -v
npm -v

四、安装 Node.js 22(当前最新版,非 LTS)

适合测试新特性、前沿技术栈:

# 1. 添加 NodeSource 源
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -# 2. 安装 Node.js 22
sudo apt-get install -y nodejs# 3. 验证安装
node -v
npm -v

五、安装前准备(可选但推荐)

安装 curl 工具(如未安装):

sudo apt-get update
sudo apt-get install -y curl

六、常见问题及解决方法

问题 1:Node.js 安装冲突

安装新版本时,若系统中存在旧的 nodejslibnode 依赖,可能出现如下错误:

dpkg: error processing archive nodejs_xxx.deb (--unpack):trying to overwrite '/usr/share/systemtap/tapset/node.stp',which is also in package libnode72:amd64 ...

解决方案:先卸载旧版本的相关依赖

sudo apt-get remove --purge nodejs libnode72
sudo apt-get autoremove

然后重新安装:

sudo apt-get install -y nodejs

七、其它建议

  • 如果你希望在多个项目中灵活切换 Node.js 版本,建议使用 nvm。
  • 若用于 Docker 构建,可直接在 Dockerfile 中使用官方 Node 镜像(如 node:20node:18 等)。
  • 确保安装完后配套的 npm 版本也是最新,可使用 npm install -g npm 升级。

参考资料

  • 🌐 NodeSource PPA 官方说明
  • 📅 Node.js Release 生命周期表

在这里插入图片描述

http://www.xdnf.cn/news/7712.html

相关文章:

  • 01-通过纯js理解数据驱动图表概念
  • window 显示驱动开发-GDI 硬件加速
  • 活到老学到老-Spring参数校验注解Validated /Valid
  • 实战:基于Pangolin Scrape API,如何高效稳定采集亚马逊BSR数据并破解反爬虫?
  • Nuxt.js一个基于 Vue.js 的通用应用框架
  • 使用引用的原因 和 运算符重载的必要性
  • Ubuntu20.04安装ROS Neotic
  • AI应用交付厂商F5打造六大解决方案,助用户应对复杂挑战
  • NX750HSA20美光固态闪存HSA36NC027
  • LLM驱动的未来软件工程范式与架构策略
  • 鸿蒙开发——7.ArkUI进阶:@BuilderParam装饰器的核心用法与实战解析
  • 算法题(151):保卫花园
  • Vue video播放视频流
  • Vue 3 响应式 Ref 全解析:从基础到高阶应用
  • 监控易一体化运维:采集集群管理,构建稳健运维基石
  • Linux | 开机自启动设置多场景实现
  • 在QT中栅格布局里套非栅格布局的布局会出现父布局缩放子布局不跟随的问题
  • 深入解析FramePack:高效视频帧打包技术原理与实践
  • 前端单点登录
  • DNA与蛋白相互作用检测技术ChIP-qPCR
  • 系统思考:团队策略辅导
  • 软考软件评测师——基于风险的测试技术
  • 破解 PCB 制造四大痛点:MOM 系统构建智能工厂新范式
  • 【Java微服务组件】异步通信P1—消息队列基本概念
  • RocketMQ 顺序消息实现原理详解
  • 小米便签源码部署流程
  • 前端mjs和js文件区别,mjs和cjs区别---.es.js和.mjs的区别
  • Oracle Apps R12——报表入门:如何定义一个Concurrent Program(请求)
  • 【Auto-dl ssh隧道,TensorBoard】
  • 矩阵的秩(Rank)