介绍
Node.js 是用于服务器端编程的 JavaScript 运行时。 它允许开发人员使用 JavaScript 创建可扩展的后端功能,这是一种许多人在基于浏览器的 Web 开发中已经熟悉的语言。
在本指南中,我们将向您展示在 CentOS 8 服务器上安装 Node.js 的三种不同方法:
- 使用
dnf
从 CentOS 的默认 AppStream 存储库安装nodejs
软件包 - 安装
nvm
,节点版本管理器,并使用它来安装和管理node
的多个版本 - 从源代码构建和安装
node
大多数用户应该使用 dnf
来安装 Node.js 的内置预打包版本。 如果您是开发人员或需要管理多个已安装的 Node 版本,请使用 nvm
方法。 对于大多数用户来说,很少需要从源代码构建。
先决条件
要完成本教程,您需要一台运行 CentOS 8 的服务器。 我们假设您以非 root、sudo
启用的用户身份登录到此服务器。 要进行此设置,请参阅我们的 CentOS 8 初始服务器设置指南。
选项 1 — 从 CentOS AppStream 存储库安装节点
Node.js 可从 CentOS 8 的默认 AppStream 软件存储库获得。 有多个版本可用,您可以通过启用适当的 模块流 在它们之间进行选择。 首先使用 dnf
命令列出 nodejs
模块的可用流:
sudo dnf module list nodejs
OutputName Stream Profiles Summary nodejs 10 [d] common [d], development, minimal, s2i Javascript runtime nodejs 12 common, development, minimal, s2i Javascript runtime
有两个流可用,10
和 12
。 [d]
表示版本 10 是默认流。 如果您希望安装 Node.js 12,请立即切换模块流:
sudo dnf module enable nodejs:12
系统将提示您确认您的决定。 之后将启用版本 12 流,我们可以继续安装。 有关使用模块流的更多信息,请参阅 官方 CentOS AppStream 文档 。
使用 dnf
安装 nodejs
包:
sudo dnf install nodejs
同样,dnf
将要求您确认它将采取的操作。 按 y
然后按 ENTER
这样做,软件将安装。
通过查询 node
的版本号来检查安装是否成功:
node --version
Outputv12.13.1
如果您安装了 Node.js 10,您的 --version
输出将有所不同。
注意: Node.js 的两个可用版本都是 长期支持 版本,这意味着它们有更长的保证维护窗口。 查看 官方 Node.js 发布页面 了解更多生命周期信息。
安装 nodejs
包还应安装 npm
Node Package Manager 实用程序作为依赖项。 验证它是否也已正确安装:
npm --version
Output6.12.1
至此,您已经使用 CentOS 软件存储库成功安装了 Node.js 和 npm。 下一节将展示如何使用节点版本管理器来执行此操作。
选项 2 — 使用节点版本管理器安装节点
另一种特别灵活的安装 Node.js 的方法是使用 nvm,即节点版本管理器。 该软件允许您同时安装和维护许多不同的独立版本的 Node.js 及其相关的 Node 包。
要在 CentOS 8 机器上安装 NVM,请访问 项目的 GitHub 页面 。 从显示在主页上的 README 文件中复制 curl
命令。 这将为您提供最新版本的安装脚本。
在将命令传送到 bash
之前,最好先审核脚本以确保它没有做任何您不同意的事情。 您可以通过删除 curl
命令末尾的 | bash
段来做到这一点:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh
看看并确保您对它所做的更改感到满意。 满意后,再次运行命令,并在末尾附加 | bash
。 您使用的 URL 将根据 NVM 的最新版本而改变,但截至目前,可以通过键入以下内容下载和执行脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
这会将 nvm
脚本安装到您的用户帐户。 要使用它,您必须首先获取您的 .bash_profile
文件:
source ~/.bash_profile
现在,您可以询问 NVM 哪些版本的 Node 可用:
nvm list-remote
. . . v12.13.0 (LTS: Erbium) v12.13.1 (LTS: Erbium) v12.14.0 (LTS: Erbium) v12.14.1 (LTS: Erbium) v12.15.0 (LTS: Erbium) v12.16.0 (LTS: Erbium) v12.16.1 (Latest LTS: Erbium) v13.0.0 v13.0.1 v13.1.0 v13.2.0 v13.3.0 v13.4.0 v13.5.0 v13.6.0 v13.7.0 v13.8.0 v13.9.0 v13.10.0 v13.10.1 v13.11.0 v13.12.0
这是一个很长的清单! 您可以通过键入您看到的任何发行版本来安装 Node 版本。 例如,要获取 v13.6.0 版本,您可以键入:
nvm install v13.6.0
您可以通过键入以下内容查看已安装的不同版本:
nvm list
Output-> v13.6.0 default -> v13.6.0 node -> stable (-> v13.6.0) (default) stable -> 13.6 (-> v13.6.0) (default)
这会在第一行 (-> v13.6.0
) 上显示当前活动的版本,然后是一些命名别名以及这些别名指向的版本。
注意: 如果您还通过 CentOS 软件存储库安装了 Node 版本,您可能会在此处看到 system -> v12.13.1
(或其他版本号)行。 您始终可以使用 nvm use system
激活 Node 的系统版本。
此外,您将看到 Node 的各种 长期支持(或 LTS)版本的别名:
Outputlts/* -> lts/erbium (-> 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.19.0 (-> N/A) lts/erbium -> v12.16.1 (-> N/A)
我们也可以安装基于这些别名的版本。 例如,要安装最新的长期支持版本 erbium
,请运行以下命令:
nvm install lts/erbium
OutputDownloading and installing node v12.16.1... . . . Now using node v12.16.1 (npm v6.13.4)
您可以使用 nvm use
在已安装的版本之间切换:
nvm use v13.6.0
Now using node v13.6.0 (npm v6.13.4)
您可以使用其他部分中的相同技术验证安装是否成功,方法是键入:
node --version
Outputv13.6.0
正如我们预期的那样,正确版本的 Node 已安装在我们的机器上。 还提供 npm
的兼容版本。
选项 3 — 从源代码安装节点
安装 Node.js 的另一种方法是下载源代码并自行编译。
为此,请使用您的网络浏览器导航到官方Node.js下载页面,右键单击源代码链接并单击复制链接地址或您的浏览器为您提供的任何类似选项。
回到你的 SSH 会话,首先确保你在一个可以写入的目录中。 我们将使用当前用户的主目录:
cd ~
然后输入 curl
,粘贴您从网站复制的链接,并在其后面加上 | tar xz
:
curl https://nodejs.org/dist/v12.16.1/node-v12.16.1.tar.gz | tar xz
这将使用 curl
实用程序下载源代码,然后将 pipe 直接下载到 tar
实用程序,将其解压到当前目录。
移动到新创建的源目录:
cd node-v*
为了编译代码,我们需要从 CentOS 存储库下载一些软件包。 现在使用 dnf
安装这些:
sudo dnf install gcc-c++ make python2
系统将提示您确认安装。 键入 y
然后 ENTER
这样做。 现在,我们可以配置和编译软件:
./configure make -j4
编译需要相当长的时间(在四核服务器上大约需要 30 分钟)。 我们使用 -j4
选项来运行四个并行编译过程。 您可以省略此选项或根据您可用的处理器内核数更新数量。
编译完成后,您可以通过键入以下命令将软件安装到系统上:
sudo make install
要检查安装是否成功,请让 Node 显示其版本号:
node --version
v12.16.1
如果您看到正确的版本号,则安装已成功完成。 默认情况下,Node 还安装了 npm
的兼容版本,因此它也应该可用。
结论
在本教程中,我们展示了如何使用 CentOS AppStream 软件存储库、使用 Node Version Manager 以及从源代码编译来安装 Node.js。
如果您想了解更多关于 JavaScript 编程的信息,请阅读我们的相关教程系列:
- How To Code in Javascript:JavaScript语言的全面概述,适用于浏览器和Node.js
- 如何在 Node.js 中编码:一系列练习,教授使用 Node.js 的基础知识