Ubuntu 22.04 安装 Node.js 18
核心问题
在 Ubuntu 22.04 上通过官方推荐方法安装 Node.js 18 时,系统默认安装的是较旧的 v12.22.9 版本而非目标版本。用户提供的典型错误场景如下:
bash
sudo bash nodesource_setup.sh
sudo apt install nodejs
# 实际安装结果:v12.22.9
此问题源于 Ubuntu 22.04 默认仓库包含旧版 Node.js 且未能正确替换为 Nodesource 提供的新版本源。
优选解决方案
方法一:使用 Node Version Manager (推荐)
此方法允许灵活安装和管理多个 Node.js 版本,适合开发环境。
1. 安装 Node Version Manager
bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
2. 激活 NVM
重新打开终端或运行:
bash
source ~/.bashrc # 或 source ~/.zshrc
3. 查看可用版本
bash
nvm ls-remote
4. 安装指定版本
bash
nvm install 18 # 自动安装LTS最新版
# 或指定确切版本
nvm install 18.20.2
5. 验证安装
bash
node --version # 应显示 v18.x
版本管理示例
命令 | 功能 |
---|---|
nvm list | 列出已安装版本 |
nvm use 16 | 切换到Node.js 16 |
nvm default 18 | 设置默认版本为18 |
使用提示
- 每个终端会话需通过
nvm use
指定活动版本 - 使用
nvm alias default 18
设置默认版本避免重复选择
方法二:通过 Nodesource 仓库安装
适合需要系统级单一版本的生产环境部署。
关键步骤
请先移除旧版 Node.js 避免冲突:
bash
sudo apt purge nodejs npm
sudo apt autoremove
1. 添加 Nodesource 仓库
# 对于 Node.js 18
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# 可选: 手动添加仓库密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
2. 执行安装命令
bash
sudo apt update
sudo apt install -y nodejs
3. 验证安装
bash
node -v # 应输出 v18.x
npm -v # 关联npm同时安装
解决方案对比分析
方法 | 适用场景 | 优点 | 局限性 |
---|---|---|---|
NVM | 多项目开发/版本测试 | 无冲突安装多版本 | 需每用户单独配置 |
Nodesource | 生产环境/服务器部署 | 系统全局可用 | 同一环境仅支持单版本 |
常见问题排查
问题:Nodesource安装后仍为旧版
解决方案:
bash
# 清理旧配置
sudo rm /etc/apt/sources.list.d/nodesource.list*
sudo rm -rf /etc/apt/keyrings/nodesource.gpg
# 重新添加仓库
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt update
sudo apt install --reinstall nodejs
问题:NVM命令无法识别
解决方案:
bash
# 确保安装后执行
exec $SHELL
source ~/.bashrc
# 或检查 .zshrc/.profile
环境清理方法
完整卸载Node.js及关联组件:
bash
# 通过APT安装的版本
sudo apt purge nodejs npm
sudo apt autoremove
# 通过NVM安装的版本
rm -rf ~/.nvm
sed -i '/nvm/d' ~/.bashrc ~/.zshrc
最佳实践建议
- 开发环境优先使用 NVM 避免权限问题
- 生产环境推荐 Nodesource + PM2 进程管理
- 定期升级版本
nvm install --lts=Gallium
或sudo apt upgrade nodejs