如何在Ubuntu 18.04上安装Node.js

Node.js是一个通用编程的JavaScript平台,允许用户快速构建网络应用程序。在本指南中,我们将向您介绍如何在Ubuntu 18.04服务器上开始使用Node.js。

本教程的以前版本由Brennen Bearnes编写

介绍

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

在本指南中,我们将向您介绍如何在Ubuntu 18.04服务器上开始使用Node.js。

先决条件

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

为Ubuntu安装Distro稳定版本

Ubuntu 18.04在其默认存储库中包含一个版本的Node.js,可用于在多个系统间提供一致的体验。 在撰写本文时,存储库中的版本是8.10.0。 这不会是最新的版本,但它应该稳定且足以快速实验该语言。

要获得此版本,您可以使用apt软件包管理器。 键入以下内容刷新本地包索引:

sudo apt update

从存储库安装Node.js:

sudo apt install nodejs

如果存储库中的软件包满足您的需求,则只需使用Node.js即可完成设置。 在大多数情况下,您还需要安装npm ,Node.js包管理器。 你可以通过输入以下命令来完

sudo apt install npm

这将允许您安装模块和程序包以与Node.js一起使用。

由于与另一个软件包冲突,Ubuntu存储库中的可执行文件被称为nodejs而不是node 在运行软件时请记住这一点。

要检查在这些初始步骤后安装了哪个版本的Node.js,请键入:

nodejs -v

一旦建立了您从Ubuntu存储库安装的Node.js版本,您可以决定是否要使用不同版本,软件包存档或版本管理器。 接下来,我们将讨论这些元素,以及更灵活和强大的安装方法。

使用PPA进行安装

要获得更新版本的Node.js,您可以添加由NodeSource维护的PPA(个人包归档)。 这将拥有比官方Ubuntu版本库更新的Node.js版本,并允许您在Node.js v6.x(支持到2019年4月),Node.js v8.x(当前版本LTS版本,支持到2019年12月)和Node.js v10.x(最新版本,支持到2021年4月)。

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

cd ~
curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh

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

nano nodesource_setup.sh

sudo下运行脚本:

sudo bash nodesource_setup.sh

PPA将添加到您的配置中,并且您的本地程序包缓存将自动更新。 从Nodesource运行安装脚本后,您可以按照上面的相同方式安装Node.js包:

sudo apt install nodejs

要检查在这些初始步骤后安装了哪个版本的Node.js,请键入:

nodejs -v
v10.0.0

nodejs软件包包含nodejs二进制文件以及npm ,因此您不需要单独安装npm

npm使用主目录中的配置文件来跟踪更新。 它将在您第一次运行npm时创建。 执行此命令来验证是否安装了npm并创建配置文件:

npm -v
5.6.0

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

sudo apt install build-essential

您现在有必要的工具来处理需要从源代码编译代码的npm包。

使用NVM进行安装

通过apt安装Node.js的另一种方法是使用专门设计的名为nvm工具,它代表“Node.js版本管理器”。 nvm不是在操作系统级别工作,而是在主目录中的独立目录级别工作。 这意味着您可以安装多个自包含的Node.js版本,而不会影响整个系统。

使用nvm控制您的环境允许您访问最新版本的Node.js并保留和管理以前的版本。 然而,它与apt不同,它通过它管理的Node.js版本不同于Ubuntu存储库中可用的发行版稳定版本Node.js。

要从项目的GitHub页面下载nvm安装脚本,可以使用curl 请注意,版本号可能与此处突出显示的内容有所不同:

curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh -o install_nvm.sh

使用nano检查安装脚本:

nano install_nvm.sh

bash运行脚本:

bash install_nvm.sh

它会将软件安装到~/.nvm主目录的子目录中。 它还会将必要的行添加到~/.profile文件中以使用该文件。

要访问nvm功能,您需要注销并重新登录,或者获取~/.profile文件,以便您的当前会话知道更改:

source ~/.profile

安装nvm ,您可以安装独立的Node.js版本。 有关可用的Node.js版本的信息,请键入:

nvm ls-remote
...
         v8.11.1   (Latest LTS: Carbon)
         v9.0.0
         v9.1.0
         v9.2.0
         v9.2.1
         v9.3.0
         v9.4.0
         v9.5.0
         v9.6.0
         v9.6.1
         v9.7.0
         v9.7.1
         v9.8.0
         v9.9.0
        v9.10.0
        v9.10.1
        v9.11.0
        v9.11.1
        v10.0.0  

如您所见,撰写本文时的当前LTS版本是v8.11.1。 您可以通过输入以下命令来安

nvm install 8.11.1

通常, nvm将切换到使用最近安装的版本。 您可以通过键入以下内容来告诉nvm使用刚下载的版本:

nvm use 8.11.1

当您使用nvm安装Node.js时,可执行文件称为node 您可以通过输入以下命令来查看shell正在使用的版本:

node -v
v8.11.1

如果您有多个Node.js版本,则可以通过键入以下内容来查看安装的内容:

nvm ls

如果您想要默认其中一个版本,请键入:

nvm alias default 8.11.1

当新的会话产生时,这个版本将被自动选择。 你也可以通过别名来引用它:

nvm use default

每个版本的Node.js都会跟踪自己的软件包,并有npm可用于管理这些软件包。

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

npm install express

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

npm install -g express

这将在以下位置安装软件包:

~/.nvm/versions/node/node_version/lib/node_modules/express

全局安装模块将允许您从命令行运行命令,但您必须将该程序包链接到本地​​球体以在程序中要求它:

npm link express

您可以通过键入以下内容来了解​​更多关于nvm可用的选项:

nvm help

删除Node.js

您可以使用aptnvm来卸载Node.js,具体取决于您想要定位的版本。 要删除发行版稳定版,您需要在系统级使用apt实用程序。

要删除发行版稳定版,请输入以下内容:

sudo apt remove nodejs

该命令将删除软件包并保留配置文件。 如果您打算稍后重新安装软件包,这些对您来说可能很有用。 如果您不想保存配置文件供以后使用,请运行以下命令:

sudo apt purge nodejs

这将卸载软件包并删除与其关联的配置文件。

最后一步,您可以删除随已删除软件包自动安装的任何未使用的软件包:

sudo apt autoremove

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

nvm current

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

nvm uninstall node_version

该命令将卸载选定版本的Node.js.

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

nvm deactivate

您现在可以使用上面的卸载命令卸载当前版本,该命令将删除与目标版本的Node.js关联的所有文件,但可用于重新安装的缓存文件除外。

结论

有很多方法可以在Ubuntu 18.04服务器上启动并运行Node.js。 您的情况将决定上述哪种方法最适合您的需求。 在Ubuntu的仓库中使用打包版本是最简单的方法,使用nvm可以提供更多的灵活性。