Node.js是一个跨平台的、开源的JavaScript运行环境,建立在Chrome的JavaScript之上,被设计用来在网络浏览器之外执行JavaScript代码。它一般用于构建快速和可扩展的服务器端和网络应用。npm是Node.js的默认包管理器,也是世界上最大的软件注册中心的名字。
在这篇文章中,我们将探讨在Ubuntu 22.04上安装Node.js和npm的三种不同方法。
- 从标准的Ubuntu软件库中。这是Ubuntu上安装Node.js和npm的最简单方法,对于大多数使用情况来说应该是足够的。Ubuntu软件库中的版本是v12.22.9。
- 从NodeSource资源库。使用这个仓库来安装与Ubuntu仓库提供的不同的Node.js版本。目前,NodeSource支持Node.js v18.x、v17.x、v16.x和v14.x。
- 使用nvm(Node Version Manager)。这个工具允许你在同一台机器上安装多个Node.js版本。如果你是Node.js开发人员,那么这是安装Node.js的首选方式。
选择最适合你环境的安装方法。如果你不确定要安装哪个Node.js版本,请查阅你要部署的应用程序的文档。
从Ubuntu软件库中安装Node.js和npm
在写这篇文章的时候,默认的Ubuntu 22.04仓库中包含的Node.js版本是v12.22.9,这是一个旧的TLS版本。
安装是非常直接的。运行以下命令来更新软件包索引并安装Node.js和npm。
sudo apt update
sudo apt install nodejs npm
上面的命令将安装一些软件包,包括从npm编译和安装本地附加组件所需的工具。
一旦完成,通过运行来验证安装。
nodejs -v
v12.22.9
从NodeSource安装Node.js和npm
NodeSource是一家专注于提供企业级Node支持的公司。它维护着一个包含多个Node.js版本的APT资源库。如果你的应用程序需要特定版本的Node.js,请使用该仓库。
在撰写本文时,NodeSource仓库提供了以下版本。
- v18.x – 最新的稳定版本。
- v17.x
- v16.x – 最新的LTS版本。
- v14.x
我们将安装Node.js 18.x版本。
- 以具有sudo权限的用户身份运行以下命令,下载并执行NodeSource安装脚本。
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
该脚本将在你的系统中添加NodeSource签名密钥,创建一个apt仓库文件,安装所有必要的软件包,并刷新apt缓存。
如果你需要另一个Node.js版本,例如16.x,就把setup_18.x改为setup_16.x。
一旦NodeSource仓库被启用,安装Node.js和npm。
sudo apt install nodejs
nodejs包包括node和npm两个二进制文件。
通过打印Node.js和npm的版本来验证它们是否被成功安装。
node -v
v18.2.0
npm -v
8.9.0
为了能够从npm编译原生附加组件,你需要安装开发工具。
sudo apt install build-essential
使用NVM安装Node.js和npm
NVM(Node Version Manager)是一个bash脚本,允许你在每个用户的基础上管理多个Node.js版本。通过NVM,你可以安装和卸载任何你想使用或测试的Node.js版本。
访问nvm的GitHub仓库页面,复制curl或wget命令来下载和安装nvm脚本。
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
不要使用sudo,因为它将为根用户启用nvm。
该脚本将从Github克隆项目的仓库到~/.nvm目录。
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
正如上面的输出所说,你应该关闭并重新打开终端,或者运行命令将nvm脚本的路径添加到当前shell会话中。你可以做任何对你来说比较容易的事情。
一旦脚本在你的PATH中,通过输入来验证nvm是否被正确安装。
nvm -v
0.39.1
要获得所有可以用nvm安装的Node.js版本的列表,运行。
nvm list-remote
该命令将打印所有可用的Node.js版本的庞大列表。
...
v14.19.2 (LTS: Fermium)
v14.19.3 (Latest LTS: Fermium)
...
v16.14.2 (LTS: Gallium)
v16.15.0 (Latest LTS: Gallium)
v17.0.0
v17.0.1
...
v18.1.0
v18.2.0
要安装Node.js的最新可用版本,请运行。
nvm install node
输出结果应该是这样的。
...
Now using node v18.2.0 (npm v8.9.0)
Creating default alias: default -> node (-> v18.2.0)
安装完成后,通过打印Node.js的版本来验证它。
node -v
v18.2.0
让我们再安装两个版本,最新的LTS版本(16.15.0)和14.19.3版本。
nvm install --lts
nvm install 14.19.3
你可以通过输入来列出已安装的Node.js版本。
nvm ls
输出结果应该是这样的。
-> v14.19.3
v16.15.0
v18.2.0
default -> node (-> v18.2.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v18.2.0) (default)
stable -> 18.2 (-> v18.2.0) (default)
lts/* -> lts/gallium (-> v16.15.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.19.3
lts/gallium -> v16.15.0
右边带箭头的条目(-> v14.19.3)是当前shell会话中使用的Node.js版本,而默认版本被设置为v18.2.0。默认版本是打开新shell时的活动版本。
如果你想改变当前激活的版本,输入。
nvm use 16.15.0
Now using node v16.15.0 (npm v8.5.5)
要改变默认的Node.js版本,运行以下命令。
nvm alias default 16.15.0
关于使用nvm脚本的更多详细信息,请访问项目的GitHub页面。
结论
我们已经向你展示了在Ubuntu 22.04机器上安装Node.js和npm的三种方法。你选择的方法取决于你的要求和喜好。尽管从Ubuntu或NodeSource资源库中安装打包的版本更容易,但nvm方法让你更灵活地在每个用户基础上添加和删除不同的Node.js版本。