介绍
Node.js 是用于服务器端编程的 JavaScript 运行时。 它允许开发人员使用 JavaScript 创建可扩展的后端功能,这是一种许多人在基于浏览器的 Web 开发中已经熟悉的语言。
在本指南中,我们将向您展示在 Ubuntu 16.04 服务器上安装 Node.js 的三种不同方法:
- 使用
apt
从 Ubuntu 的默认软件存储库安装nodejs
软件包 - 使用带有备用 PPA 软件存储库的
apt
来安装nodejs
包的特定版本 - 安装
nvm
,Node 版本管理器,并使用它来安装和管理 Node.js 的多个版本
对于许多用户来说,使用带有默认 repo 的 apt
就足够了。 如果您需要特定的较新(或旧)版本的 Node,您应该使用 PPA 存储库。 如果你正在积极开发Node应用,需要频繁切换node
版本,选择nvm
方式。
先决条件
本指南假定您使用的是 Ubuntu 16.04。 在开始之前,您应该在系统上设置具有 sudo
权限的非 root 用户帐户。 您可以按照 Ubuntu 16.04 初始服务器设置教程 学习如何执行此操作。
选项 1 — 从默认存储库安装带有 Apt 的 Node.js
警告: Ubuntu 16.04 包含的 Node.js 版本,4.2.6 版现在不受支持和维护。 您不应使用此版本,而应参考本教程中的其他部分之一来安装更新版本的 Node.js。
要获取此版本,您可以使用 apt-get
包管理器。 首先通过键入以下内容刷新您的本地包索引:
sudo apt-get update
然后安装 Node.js:
sudo apt-get install nodejs
通过查询 node
的版本号来检查安装是否成功:
nodejs -v
Outputv4.2.6
如果存储库中的包满足您的需求,那么您只需执行此操作即可使用 Node.js。 在大多数情况下,您还需要安装 Node.js 包管理器 npm
。 您可以通过使用 apt
安装 npm
包来做到这一点:
sudo apt-get install npm
这将允许您安装模块和包以与 Node.js 一起使用。
至此,您已经使用 apt-get
和默认的 Ubuntu 软件存储库成功安装了 Node.js 和 npm
。 下一节将展示如何使用备用存储库来安装不同版本的 Node.js。
选项 2 — 使用 NodeSource PPA 安装带有 Apt 的 Node.js
要安装不同版本的 Node.js,您可以使用 NodeSource 维护的 PPA(个人包存档)。 这些 PPA 具有比官方 Ubuntu 存储库更多的 Node.js 版本。 Node.js v12、v14 和 v16 在撰写本文时可用。
首先,我们将安装 PPA 以访问其包。 在您的主目录中,使用 curl
检索您的首选版本的安装脚本,确保将 16.x
替换为您的首选版本字符串(如果不同)。
cd ~ curl -sL https://deb.nodesource.com/setup_16.x -o nodesource_setup.sh
有关可用版本的更多信息,请参阅 NodeSource 文档。
使用 nano
(或您喜欢的文本编辑器)检查下载脚本的内容:
nano nodesource_setup.sh
当您对脚本可以安全运行感到满意时,退出编辑器,然后使用 sudo
运行脚本:
sudo bash nodesource_setup.sh
PPA 将添加到您的配置中,并且您的本地包缓存将自动更新。 您现在可以按照与上一节相同的方式安装 Node.js 包:
sudo apt-get install nodejs
通过运行带有 -v
版本标志的 node
来验证您是否已安装新版本:
node -v
Outputv16.10.0
NodeSource nodejs
包包含 node
二进制文件和 npm
,因此您不需要单独安装 npm
。
至此,您已经使用 apt
和 NodeSource PPA 成功安装了 Node.js 和 npm
。 下一节将展示如何使用 Node 版本管理器来安装和管理 Node.js 的多个版本。
选项 3 — 使用节点版本管理器安装节点
另一种特别灵活的安装 Node.js 的方法是使用 nvm,即节点版本管理器。 该软件允许您同时安装和维护许多不同的独立版本的 Node.js 及其相关的 Node 包。
要在 Ubuntu 16.04 机器上安装 NVM,请访问 项目的 GitHub 页面 。 从显示在主页上的 README 文件中复制 curl
命令。 这将为您提供最新版本的安装脚本。
在将命令传送到 bash
之前,最好先审核脚本以确保它没有做任何您不同意的事情。 您可以通过删除 curl
命令末尾的 | bash
段来做到这一点:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh
看看并确保您对它所做的更改感到满意。 满意后,再次运行命令,并在末尾附加 | bash
。 您使用的 URL 将根据 nvm 的最新版本而改变,但截至目前,可以通过键入以下内容下载和执行脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
这会将 nvm
脚本安装到您的用户帐户。 要使用它,您必须首先获取您的 .bashrc
文件:
source ~/.bashrc
现在,您可以询问 NVM 哪些版本的 Node 可用:
nvm list-remote
Output. . . v14.16.0 (LTS: Fermium) v14.16.1 (LTS: Fermium) v14.17.0 (LTS: Fermium) v14.17.1 (LTS: Fermium) v14.17.2 (LTS: Fermium) v14.17.3 (LTS: Fermium) v14.17.4 (Latest LTS: Fermium) v15.0.0 v15.0.1 v15.1.0 v15.2.0 v15.2.1 v15.3.0 v15.4.0 v15.5.0 v15.5.1 v15.6.0 v15.7.0 v15.8.0 v15.9.0 v15.10.0 v15.11.0 v15.12.0 v15.13.0 v15.14.0 v16.0.0 v16.1.0 v16.2.0
这是一个很长的清单! 您可以通过键入您看到的任何发行版本来安装 Node 版本。 例如,要获取版本 v14.10.1,您可以键入:
nvm install v14.10.1
您可以通过键入以下内容查看已安装的不同版本:
nvm list
Output-> v14.10.1 system default -> v14.10.1 (-> N/A) iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v14.10.1) (default) stable -> 14.10 (-> v14.10.1) (default)) . . .
这会在第一行 (-> v14.10.1
) 上显示当前活动的版本,然后是一些命名别名以及这些别名指向的版本。
注意: 如果您还通过 apt
安装了 Node.js 版本,您可能会在此处看到 system
条目。 您始终可以使用 nvm use system
激活系统安装的 Node 版本。
此外,您将看到 Node 的各种 长期支持(或 LTS)版本的别名:
Output. . . lts/* -> lts/fermium (-> N/A) 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.4 (-> N/A) lts/fermium -> v14.17.4 (-> N/A)
我们也可以安装基于这些别名的版本。 例如,要安装最新的长期支持版本 fermium
,请运行以下命令:
nvm install lts/fermium
OutputDownloading and installing node v14.17.4... . . . Now using node v14.17.4 (npm v6.14.14))
您可以使用 nvm use
在已安装的版本之间切换:
nvm use v14.10.0
OutputNow using node v14.10.0 (npm v6.14.8) ``` You can verify that the install was successful using the same technique from the other sections, by typing: ```command node -v
Outputv14.10.0
正如我们预期的那样,正确版本的 Node 已安装在我们的机器上。 还提供 npm
的兼容版本。
结论
有很多方法可以在 Ubuntu 16.04 服务器上启动和运行 Node.js。 您的情况将决定上述哪种方法最适合您的需求。 虽然使用 Ubuntu 存储库中的打包版本是最简单的方法,但使用 nvm
或 NodeSource PPA 提供了额外的灵活性。
有关使用 Node.js 编程的更多信息,请参阅我们的教程系列 如何在 Node.js 中编码。