如何在 Ubuntu 上安装 Node.js:使用 APT、NodeSource 和 nvm 的完整指南

目次

1. 介绍:为什么在 Ubuntu 上使用 Node.js?

Ubuntu 与 Node.js 的卓越兼容性

Node.js 是一个在服务器端运行 JavaScript 的平台,广泛用于 Web 应用和工具开发。Ubuntu 则是受到众多开发者和服务器管理员信赖的 Linux 发行版。将二者结合,可构建一个在 稳定性、灵活性和速度 方面表现出色的开发环境。

在 Ubuntu 上安装 Node.js 具有以下优势:

  • 轻量级操作系统,开销极小,能够高效利用系统资源
  • 从开发到测试再到生产的统一 Linux 环境
  • 与 Node.js 高度兼容,并能顺畅集成 npm、nvm 等工具

基于以上原因,Ubuntu 与 Node.js 的组合对前端和后端开发都是极具吸引力的开发环境

目标读者与本文目的

本文面向以下读者:

  • 首次在 Ubuntu 上使用 Node.js 的用户
  • 想了解哪种安装方式最合适的用户
  • 想使用最新 Node.js 版本但对配置不确定的用户

阅读本文后,您将能够 比较 Ubuntu 上的三种 Node.js 安装方式,并根据自己的目标和技术水平选择最合适的方案。此外,指南还涵盖 npm、yarn 等相关工具以及常见错误的解决方案,帮助您自信地使用 Node.js 环境。

2. Ubuntu 上 Node.js 安装方式概览

三种安装方式,各有特点

在 Ubuntu 上安装 Node.js 主要有三种方式:

  1. 通过 APT(Advanced Package Tool)安装标准软件包
  2. 通过 NodeSource PPA(Personal Package Archive)进行安装
  3. 使用 nvm(Node Version Manager)进行灵活的版本管理

每种方法都有各自的优缺点,最佳选择取决于您的使用场景和系统配置。下表概括了它们的特性。

Node.js 安装方式对比表

Installation MethodMain FeaturesAdvantagesDisadvantagesRecommended For
APT (Default)Uses Ubuntu’s official repositorySimple and safeVersion may be outdatedBeginners who want to try quickly
NodeSource PPAManages newer Node.js versions via APTRelatively up-to-date versionsRequires adding a PPADevelopers who want a stable recent version
nvmSupports switching between multiple versionsHighly flexible and ideal for developmentRequires shell configurationRecommended for learning and development

为什么对比很重要?

Ubuntu 以稳定性为首要目标,这导致 APT 仓库中的软件版本往往较为保守。因此,想要使用最新 Node.js 功能或需要测试多个版本的用户应考虑除 APT 之外的方案

另一方面,如果您的目标只是快速尝试 Node.js,或在生产服务器上避免额外配置,APT 方法可能已经足够。

那该如何选择?

综上所述,对于开发者或任何计划长期使用 Node.js 的人来说,推荐通过 nvm 安装。原因包括:

  • 轻松在最新和旧版本之间切换
  • npm 会自动安装
  • 权限问题更少(无需 sudo)

3. 方法 ①:使用 APT(Ubuntu 官方)轻松安装 Node.js

什么是 APT?Ubuntu 的标准软件包管理系统

APT(Advanced Package Tool)是 Ubuntu 以及其他基于 Debian 的 Linux 发行版使用的标准软件包管理系统。使用 APT,您可以通过单条命令轻松安装、更新和卸载软件。

Ubuntu 官方仓库已包含 Node.js 软件包,这意味着 您可以立即安装 Node.js,无需任何特殊准备

安装步骤

  1. 更新 APT 软件包列表。
    sudo apt update
    
  1. 安装 Node.js 和 npm。
    sudo apt install nodejs npm
    
  1. 验证安装是否成功。
    node -v
    npm -v
    

如果显示版本信息,则说明安装成功。

优势:简单且安全

  • 使用官方 Ubuntu 仓库,可靠性极高
  • 命令简洁,适合初学者
  • 通过 APT 与系统更新集成

.### 缺点:版本可能已过时

因为 APT 优先考虑稳定性,可用的 Node.js 版本可能落后好几代

例如,在 Ubuntu 22.04 上,通过 APT 安装的 Node.js 版本可能是 12 或 14,这意味着 最新的功能和安全改进可能未被包含

如果你需要在不同项目中使用多个 Node.js 版本,这种方法也不适用。

适合此方法的对象

  • 想要立即尝试 Node.js 的初学者
  • 稳定版本足以满足需求的生产环境
  • 不需要多个 Node.js 版本的用户

4. 方法②:使用 NodeSource PPA 安装最新版本

什么是 NodeSource?

NodeSource 是一家可信赖的供应商,能够快速提供稳定且最新的 Node.js 版本,且独立于官方 Node.js 团队。它特别适用于希望 在继续使用 APT 的同时安装更新的 Node.js 版本 的 Ubuntu 和 Debian 用户。

此方法在官方 Node.js 网站上有推荐,并且在企业环境中被广泛使用。

安装步骤(示例:Node.js 18.x)

  1. 更新软件包列表。
    sudo apt update
    
  1. 若系统未安装 curl,则先安装。
    sudo apt install curl
    
  1. 运行 NodeSource 设置脚本。
    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    
  1. 安装 Node.js。
    sudo apt install -y nodejs
    
  1. 验证安装是否成功。
    node -v
    npm -v
    

优点:使用 APT 安装最新版本

  • 轻松安装最新的稳定版 Node.js
  • 仍然使用熟悉的 APT 管理方式
  • npm 会自动安装

缺点:需要添加 PPA

  • 相比标准 APT 安装步骤略多
  • 需要评估来源的可信度(NodeSource 通常是安全的)

适合此方法的对象

  • 需要稳定且最新 Node.js 版本的开发者
  • 觉得 Ubuntu 官方仓库的版本不足但不想使用 nvm 的用户
  • 想保持集中式 APT 包管理的用户

5. 方法③:使用 nvm 实现灵活的版本管理(推荐)

什么是 nvm?管理 Node.js 版本的强大工具

nvm(Node Version Manager) 是一个命令行工具,允许你管理和切换多个 Node.js 版本。它对需要为不同项目使用不同版本或想同时测试最新和 LTS 版本的开发者尤为有用。

使用 nvm,你可以在 仅限用户账户的环境中构建灵活的开发环境,无需在系统范围内安装 Node.js。

安装 nvm

  1. 使用 curl 运行安装脚本。
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    
  1. 重新加载你的 shell 配置文件。
    source ~/.bashrc
    

或者,如果你使用的是 Zsh:

source ~/.zshrc
  1. 验证 nvm 是否已安装。
    command -v nvm
    

如果显示 nvm,则说明安装成功。

使用 nvm 安装 Node.js

  1. 安装 LTS 版本:
    nvm install --lts
    
  1. 安装指定版本:
    nvm install 18
    
  1. 切换到活动版本:
    nvm use 18
    
  1. 设置默认版本:
    nvm alias default 18
    
  1. 检查已安装的版本:
    node -v
    npm -v
    

优点:最大灵活性与可控性

  • 多个版本可以共存并即时切换
  • npm 会自动安装
  • 不需要 sudo,降低权限问题
  • 不会修改系统环境,特别适合开发使用

缺点:初始设置需要注意

  • 如果 shell 配置文件未正确加载,nvm 将无法工作
  • 仅对单个用户安装,非系统范围

适合此方法的对象

.

  • 需要在不同 Node.js 版本之间切换的开发者
  • 管理多个项目且需求各不相同的用户
  • 想要避免权限相关问题的初学者

6. 使用 npm 和 yarn

什么是 npm?

npm(Node Package Manager) 是管理 Node.js 包的必备工具。它可以让你轻松安装和管理全球开发者发布的库和工具。

当通过 APT、NodeSource 或 nvm 安装 Node.js 时,npm 通常会自动随之安装。

检查版本:
npm -v

基本 npm 命令

ActionCommand Example
Install a packagenpm install <package-name>
Install globallynpm install -g <package-name>
Uninstall a packagenpm uninstall <package-name>
Initialize a projectnpm init or npm init -y
List packagesnpm list or npm list -g

什么是 yarn?

yarn 是 Facebook 开发的 npm 替代方案,旨在实现 更快且更可靠的包管理。它的命令大体上与 npm 兼容。

通过 npm 安装 yarn

npm install -g yarn

验证安装:

yarn -v

基本 yarn 命令

ActionCommand Example
Install a packageyarn add <package-name>
Global installyarn global add <package-name>
Uninstall a packageyarn remove <package-name>
Initialize a projectyarn init
List packagesyarn list or yarn global list

npm vs yarn:该选哪个?

Comparisonnpmyarn
StandardIncluded with Node.jsRequires installation
SpeedStandardFaster with caching
Lock filepackage-lock.jsonyarn.lock
CompatibilityMostly compatible

现代 npm(v7 及以后)已经有了显著提升,因此 两者通常都可以。最好遵循你的项目或团队已经在使用的工具。

7. 常见错误与故障排除

常见问题及解决方案

node: command not found

原因:
Node.js 未正确安装,或 PATH 未设置。此情况常在安装 nvm 后未重新加载 shell 配置时出现。

解决方案:

  • 重新加载 shell 配置文件:
    source ~/.bashrc
    
  • 若问题仍在,注销后重新登录或重启机器

E: Unable to locate package nodejs

原因:
APT 包列表过期或未添加正确的 PPA。

解决方案:

  • 更新 APT 列表:
    sudo apt update
    
  • 若使用 NodeSource,重新运行安装脚本

npm ERR! permission denied

原因:
全局安装 npm 包时权限不足。

解决方案:

  • 使用 sudo(但并非总是推荐):
    sudo npm install -g <package-name>
    
  • 使用 nvm 是避免权限问题的最佳实践

nvm: command not found

原因:
nvm 已安装,但 shell 配置未加载。

解决方案:

  • 确保在 shell 配置文件中已 source nvm
  • 手动加载:
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    

防止问题的最佳实践

  • 始终检查 PATH 设置
  • 使用 nvm 可避免大多数环境相关的问题
  • 注意 Ubuntu 与 Node.js 版本之间的兼容性

8. 常见问答(FAQ)

Q1. 如何查看我的 Node.js 版本?

A. 在终端运行以下命令:

node -v

同时查看 npm 版本:

npm -v

Q2. 如何在 Ubuntu 上使用多个 Node.js 版本?

A. 使用 nvm 是最简单、最安全的方式。安装后,可这样切换版本:

nvm install 16
nvm use 16

Q3. 通过 nvm 安装的 Node.js 未生效,为什么?

A. 大多数情况下是因为 shell 配置文件未被加载。运行:

source ~/.bashrc

或在 Zsh 中使用:

source ~/.zshrc

Q4. npm 与 yarn 有何区别?

A. 两者的核心功能相似,但 yarn 通过缓存实现更快的安装,并通过 yarn.lock 提供显式的依赖锁定。现代 npm 已有显著改进,两者皆可良好使用。

Q5. Node.js、Deno 和 Bun 有何不同?

A. Deno 与 Bun 是为弥补 Node.js 局限而设计的替代运行时。

  • Deno:原生 TypeScript 支持、增强安全性、内置标准库
  • Bun:更快的执行速度和内置包管理

然而,Node.js 仍然是 最实用的选择,因为其拥有庞大的 npm 生态系统。

9. 结论:为你的需求选择合适的安装方式

.在 Ubuntu 上安装 Node.js 有多种方式,每种方式都有明确的优势和适用场景。本文介绍了三种代表性的方法,并说明了如何选择最合适的方式。

APT(Ubuntu 官方)

  • 优点: 最简单且最安全
  • 缺点: 版本可能过旧
  • 推荐对象: 想要快速入门的初学者

NodeSource PPA

  • 优点: 在使用 APT 的同时安装更新的版本
  • 缺点: 需要添加 PPA
  • 推荐对象: 想要使用稳定近期版本的开发者

nvm(Node 版本管理器)

  • 优点: 灵活的版本切换和干净的环境
  • 缺点: 设置稍微复杂一些
  • 推荐对象: 处理多个项目的开发者

本指南还涵盖了 npm、yarn 以及常见的故障排除技巧。虽然 Node.js 的安装起初可能看起来复杂,但 选择合适的方法即可轻松在 Ubuntu 上构建稳定的开发环境

如果你计划进一步扩展项目,使用 nvm 作为基础将帮助你在团队开发和 CI/CD 工作流中实现规模化。