介绍
Node.js 是用于服务器端编程的 JavaScript 运行时。它允许开发人员使用 JavaScript 创建可扩展的后端功能,许多人已经从基于浏览器的 Web 开发中熟悉了这种语言。
在本指南中,我们将向您展示在 CentOS 8 服务器上安装 Node.js 的三种不同方法:
- 使用
dnf
安装nodejs
从CentOS的默认AppStream库包 - 安装
nvm
Node 版本管理器,并使用它来安装和管理多个版本的node
node
从源代码构建和安装
大多数用户应该dnf
用来安装 Node.js 的内置预打包版本。如果您是开发人员或需要管理多个已安装的 Node 版本,请使用该nvm
方法。大多数用户很少需要从源代码构建。
先决条件
要完成本教程,你需要运行的CentOS 8的服务器,我们将假定你登录到该服务器作为非根,sudo
使能的用户。要进行设置,请参阅我们的 CentOS 8 初始服务器设置指南。
选项 1 — 从 CentOS AppStream 存储库安装 Node
Node.js 可从 CentOS 8 的默认AppStream软件存储库中获得。有多个版本可用,您可以通过启用适当的模块流在它们之间进行选择。首先nodejs
使用dnf
命令列出模块的可用流:
- 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 官方文档。
安装nodejs
包dnf
:
- sudo dnf install nodejs
再次,dnf
将要求您确认它将采取的操作。按y
然后ENTER
执行此操作,软件将安装。
通过查询node
版本号来检查安装是否成功:
- node --version
Outputv12.13.1
--version
如果您安装的是 Node.js 10,您的输出将会有所不同。
注意: Node.js 的两个可用版本都是长期支持版本,这意味着它们有更长的保证维护窗口。有关更多生命周期信息,请参阅官方 Node.js 发布页面。
安装nodejs
包还应安装npm
节点包管理器实用程序作为依赖项。验证它是否也已正确安装:
- npm --version
Output6.12.1
此时,您已经使用 CentOS 软件存储库成功安装了 Node.js 和 npm。下一节将展示如何使用节点版本管理器来执行此操作。
选项 2 — 使用节点版本管理器安装节点
安装 Node.js 的另一种特别灵活的方法是使用 nvm,即节点版本管理器。该软件允许您同时安装和维护许多不同的独立版本的 Node.js 及其关联的 Node 包。
要在 CentOS 8 机器上安装 NVM,请访问该项目的 GitHub 页面。curl
从主页上显示的 README 文件中复制该命令。这将为您提供最新版本的安装脚本。
在将命令通过管道传递到 之前bash
,审核脚本以确保它没有做任何您不同意的事情总是一个好主意。您可以通过删除命令| bash
末尾的段来做到这一点curl
:
- 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的各种长期支持(或 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
另一种安装 Node.js 的方法是下载源代码并自己编译。
为此,请使用您的 Web 浏览器导航到官方 Node.js 下载页面,右键单击源代码链接,然后单击复制链接地址或浏览器提供的任何类似选项。
回到您的 SSH 会话,首先确保您位于可以写入的目录中。我们将使用当前用户的主目录:
- cd ~
然后键入curl
,粘贴您从网站复制的链接,然后使用以下命令| tar xz
:
- curl https://nodejs.org/dist/v12.16.1/node-v12.16.1.tar.gz | tar xz
这将使用该curl
实用程序下载源代码,然后将其直接通过管道传输到该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.js。
如果您想了解有关 JavaScript 编程的更多信息,请阅读我们的相关教程系列:
- How To Code in Javascript : JavaScript 语言的全面概述,适用于浏览器和 Node.js
- 如何在 Node.js 中编码:一系列练习,教授使用 Node.js 的基础知识