如何在Ubuntu 18.04上安装Node.js

介绍

Node.js是一个用于通用编程的JavaScript平台,允许用户快速构建网络应用程序。通过在前端和后端都利用JavaScript,Node.js使开发更加一致和集成。

在本指南中,您将了解在Ubuntu 18.04服务器上安装Node.js的三种不同方法。

先决条件

本指南假设您正在使用Ubuntu 18.04。在开始之前,您应该在系统上设置一个具有sudo权限的非root用户帐户。您可以通过按照Ubuntu 18.04的初始服务器设置教程来学习如何做到这一点。

使用Apt从默认存储库安装Node.js

Ubuntu 18.04 包含一个 Node.js 的版本,该版本位于默认仓库中,可用于在多个系统上提供一致的体验。目前仓库中的版本是 8.10.0。虽然这不是最新版本,但应该是稳定的,足以进行语言的快速实验。

要获取此版本,您可以使用 apt 包管理器。刷新您的本地软件包索引:

  1. sudo apt update

现在安装 Node.js:

  1. sudo apt install nodejs

通过查询 node 的版本号来验证是否成功安装了 Node.js:

  1. node -v
Output
v8.10.0

如果仓库中的软件包符合您的需求,这就是您设置 Node.js 所需的全部步骤。在大多数情况下,您还需要安装 npm,即 Node.js 包管理器。您可以使用 apt 安装 npm 软件包:

  1. sudo apt install npm

这将允许您安装模块和软件包以供 Node.js 使用。

您现在已成功使用 apt 和默认的 Ubuntu 软件仓库安装了 Node.js 和 npm。但是,您可能更喜欢使用不同版本的 Node.js、软件包存档或版本管理器。下一步将讨论这些元素,以及更灵活和强大的安装方法。

使用 NodeSource PPA 使用 Apt 安装 Node.js

要安装更新版本的Node.js,您可以添加由NodeSource维护的PPA(个人软件包存档)。这将比官方的Ubuntu存储库具有更更新的Node.js版本,并且将允许您在多个可用版本的平台之间进行选择。

首先,安装PPA以访问其内容。从您的主目录,使用curl检索安装脚本以获取您首选版本,确保用您首选的版本字符串(如果不同)替换17.x:

  1. cd ~
  2. curl -sL https://deb.nodesource.com/setup_17.x -o /tmp/nodesource_setup.sh

您可以参考NodeSource文档以获取关于当前可用版本的更多信息。

如果愿意,您可以使用nano(或您首选的文本编辑器)检查此脚本的内容:

  1. nano /tmp/nodesource_setup.sh

一旦您确信脚本是安全的,退出文本编辑器。如果您使用的是nano,您可以通过按下CTRL + X退出。接下来,使用sudo运行脚本:

  1. sudo bash /tmp/nodesource_setup.sh

PPA将被添加到您的配置中,并且您的本地软件包缓存将自动更新。现在您可以像在上一节中那样安装Node.js软件包:

  1. sudo apt install nodejs

通过使用-v标志运行node来验证您是否已安装了新版本:

  1. node -v
Output
v17.3.0

与默认的Ubuntu软件包存储库中的不同,这个nodejs软件包包含了nodenpm,因此您不需要单独安装npm

npm 使用位于您的主目录中的配置文件来跟踪更新。第一次运行 npm 时,将创建该文件。运行以下命令来验证是否安装了 npm 并创建配置文件:

  1. npm -v
Output
8.3.0

为了使一些 npm 包正常工作(例如需要从源代码编译的包),您需要安装 build-essential 包:

  1. sudo apt install build-essential

现在您已经拥有了处理需要从源代码编译的 npm 包所需的工具。

在本节中,您成功使用 apt 和 NodeSource PPA 安装了 Node.js 和 npm。接下来,您将使用 Node Version Manager 来安装和管理多个版本的 Node.js。

使用 Node Version Manager 安装 Node

安装 Node.js 的另一种方法是使用一个称为 nvm 的工具,即 Node Version Manager(NVM)。与在操作系统级别工作不同,nvm 在您的主目录中的一个独立目录级别工作。这意味着您可以安装多个独立的 Node.js 版本,而不会影响整个系统。

使用nvm控制您的环境允许您访问最新版本的Node.js,并保留和管理先前的版本。但它与apt是不同的实用工具,您使用它管理的Node.js版本与您使用apt管理的版本是不同的。

要在您的Ubuntu 18.04机器上安装NVM,请访问项目的GitHub页面。从主页上显示的README文件中复制curl命令以获取安装脚本的最新版本。

在将命令传递到bash之前,始终审查脚本以确保它不执行任何您不同意的操作。您可以通过删除curl命令末尾的| bash部分来执行此操作:

  1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh

审查输出并确保您对其所做的更改感到满意。一旦满意,使用| bash附加在末尾的相同命令运行。您使用的URL将取决于NVM的最新版本,但就目前而言,可以通过运行以下内容下载并执行脚本:

  1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

这将在您的用户帐户中安装nvm脚本。为了使用它,首先要引用.bashrc文件:

  1. source ~/.bashrc

安装了nvm后,您可以安装隔离的Node.js版本。首先,询问nvm有哪些Node版本可用:

  1. nvm ls-remote
Output
... v14.18.2 (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 v16.3.0 v16.4.0 v16.4.1 v16.4.2 v16.5.0 v16.6.0 v16.6.1 v16.6.2 v16.7.0 v16.8.0 v16.9.0 v16.9.1 v16.10.0 v16.11.0 v16.11.1 v16.12.0 v16.13.0 (LTS: Gallium) v16.13.1 (Latest LTS: Gallium) v17.0.0 v17.0.1 v17.1.0 v17.2.0 v17.3.0

这是一个非常长的列表,但您可以通过输入列表中的任何发布版本来安装Node的版本。例如,要获取版本v16.13.1,请运行以下内容:

  1. nvm install v16.13.1
Output
Now using node v16.13.1 (npm v8.1.2)

有时候 nvm 会切换到使用最近安装的版本。但是你可以告诉 nvm 使用你刚刚下载的版本(如果不同):

  1. nvm use v16.13.1

通过运行以下命令检查当前正在使用的版本:

  1. node -v
Output
v16.13.1

如果安装了多个 Node 版本,可以运行 ls 获取它们的列表:

  1. nvm ls
Output
-> v16.13.1 system default -> v16.13.1 iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v16.13.1) (default) stable -> 16.13 (-> v16.13.1) (default) lts/* -> lts/gallium (-> v16.13.1) 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.8 (-> N/A) lts/fermium -> v14.18.2 (-> N/A) lts/gallium -> v16.13.1

你也可以将默认版本设置为其中之一:

  1. nvm alias default 16.13.1
Output
default -> 16.13.1 (-> v16.13.1)

当新会话生成时,将自动选择此版本。你也可以通过别名引用它,就像以下命令中那样:

  1. nvm use default
Output
Now using node v16.13.1 (npm v8.1.2)

每个 Node 版本都会跟踪其自己的包,并且可以使用 npm 来管理这些包:

你还可以让 npm 将包安装到 Node.js 项目的 ./node_modules 目录中。使用以下语法安装 express 模块:

  1. npm install express
Output
added 50 packages, and audited 51 packages in 4s 2 packages are looking for funding run `npm fund` for details found 0 vulnerabilities npm notice npm notice New minor version of npm available! 8.1.2 -> 8.3.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.3.0 npm notice Run npm install -g [email protected] to update! npm notice

如果想要全局安装该模块,使其可供使用相同版本的 Node.js 的其他项目使用,可以添加 -g 标志:

  1. npm install -g express
Output
added 50 packages, and audited 51 packages in 1s 2 packages are looking for funding run `npm fund` for details found 0 vulnerabilities

这将在以下位置安装该包:

  1. ~/.nvm/versions/node/16.13.1/lib/node_modules/express

全局安装该模块将允许你从命令行运行命令,但是你需要将该包链接到你的本地环境中,以便在程序中引用它:

  1. npm link express

你可以通过运行以下命令了解 nvm 提供给你的选项:

  1. nvm help

通过使用 Node 版本管理器 nvm 安装和管理各种 Node 版本,你已经成功安装了 Node。

移除 Node.js

您可以使用 aptnvm 来卸载 Node.js,具体取决于您想要定位的版本。要移除默认存储库版本,您将在系统级别使用 apt。此命令会移除该软件包并保留配置文件。如果您计划将来重新安装该软件包,则此选项很有用:

  1. sudo apt remove nodejs

如果您不想将配置文件保存供以后使用,则运行以下命令以卸载软件包并移除与之相关联的配置文件:

sudo apt purge nodejs

作为最后一步,您可以移除与已移除软件包一起自动安装的任何未使用的软件包:

  1. sudo apt autoremove

要卸载使用 nvm 启用的 Node.js 版本,首先确定您要移除的版本是否是当前活动版本:

  1. nvm current

如果您要定位的版本 不是 当前活动版本,则可以运行:

  1. nvm uninstall node_version
Output
Uninstalled node node_version

此命令将卸载所选版本的 Node.js。

如果您要移除的版本是当前活动版本,则必须先停用 nvm 以启用您的更改:

  1. nvm deactivate

现在您可以使用先前使用的 uninstall 命令卸载当前版本。这会移除与目标 Node.js 版本相关的所有文件,但不会移除可用于重新安装的缓存文件。

结论

在 Ubuntu 18.04 服务器上启动和运行 Node.js 有很多种方式。您的具体情况将决定哪种方法最适合您的需求。虽然使用 Ubuntu 软件仓库中的打包版本是一种方法,但使用 nvm 或 NodeSource PPA 提供了额外的灵活性。

有关使用 Node.js 编程的更多信息,请参阅我们的教程系列 如何在 Node.js 中编码

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04