如何在 Ubuntu 18.04 上安装 Node.js

2023-11-09

介绍

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

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

先决条件

本指南假设您使用的是 Ubuntu 18.04。在开始之前,您应该有一个非root用户帐户sudo在您的系统上设置的权限。您可以按照以下步骤了解如何执行此操作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.jsnode其版本号:

  1. node -v
Output
v8.10.0

如果存储库中的包满足您的需求,这就是您设置 Node.js 所需要做的全部事情。在大多数情况下,您还需要安装npm,Node.js 包管理器。您可以安装npm封装有apt:

  1. sudo apt install npm

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

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

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

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

First, install the PPA in order to get access to its contents. From your home directory, use curl to retrieve the installation script for your preferred version, making sure to replace 17.x with your preferred version string (if different):

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

您可以参考节点源文档有关当前可用版本的更多信息。

如果您愿意,您可以使用以下命令检查此脚本的内容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

通过运行验证您已安装新版本node-v flag:

  1. node -v
Output
v17.3.0

与默认 Ubuntu 软件包存储库中的软件包不同,此nodejs包装包含两者node and npm,所以你不需要安装npm分别地。

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

  1. npm -v
Output
8.3.0

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

  1. sudo apt install构建必需的

现在您拥有了必要的工具来使用npm需要从源代码编译代码的包。

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

使用节点版本管理器安装节点

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

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

要在 Ubuntu 18.04 计算机上安装 NVM,请访问项目的 GitHub 页面。复制curl从主页上显示的自述文件中输入命令即可获取最新版本的安装脚本。

在将命令通过管道传输到之前bash,审核脚本以确保它没有做任何您不同意的事情总是一个好主意。您可以通过删除| bash末尾的部分curl命令:

  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 file:

  1. source~/.bashrc

With nvm安装后,您可以安装独立的 Node.js 版本。首先,问一下nvm有哪些版本的 Node 可用:

  1. nvm ls 远程
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 installv16.13.1
Output
Now using node v16.13.1 (npm v8.1.2)

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

  1. nvm使用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 使用默认值
Output
Now using node v16.13.1 (npm v8.1.2)

每个版本的 Node 都会跟踪自己的包并具有npm可以管理这些。

您还可以拥有npm将软件包安装到 Node.js 项目的./node_modules目录。使用以下语法来安装express module:

  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 npm@8.3.0 to update! npm notice

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

  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 Version Manager 成功安装了 Node,nvm,安装和管理各种版本的 Node.js。

删除 Node.js

您可以使用以下命令卸载 Node.jsapt or nvm,具体取决于您要定位的版本。要删除默认存储库版本,您将使用apt在系统层面。此命令删除包并保留配置文件。如果您计划将来再次安装该软件包,这非常有用:

  1. sudo apt删除nodejs

如果您不想保存配置文件以供以后使用,请运行以下命令卸载该软件包并删除与其关联的配置文件:

sudo apt purge nodejs

最后一步,您可以删除随删除的软件包一起自动安装的所有未使用的软件包:

  1. sudo apt自动删除

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

  1. 非易失性电流

如果您的目标版本是not当前活动版本,您可以运行:

  1. nvm uninstall node_version
Output
Uninstalled node node_version

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

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

  1. nvm 停用

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

结论

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 18.04 上安装 Node.js 的相关文章

  • 使用 Node.js mongodb 本机调用 db.destroyDatabase 时,什么可能导致“拓扑被破坏”错误?

    我正在使用 Node js Mongodb 本机驱动程序运行一些集成测试 每个测试都涉及连接到数据库 验证它是否尚不存在 例如 没有任何带有文档的集合 运行测试 然后删除数据库 高级代码如下 const runSafeTest functi
  • 打字稿:“找不到模块”且输入有效

    我刚刚使用 typescript 启动了一个新的 Nodejs 项目 我安装了打字 https github com typings typings https github com typings typings 并使用它来安装 Node
  • 如何将中间件绑定到socket.io中的事件

    现在您可以将中间件绑定到io use middleware 但这仅在建立套接字连接时触发 有没有办法在将其传递给事件句柄之前拦截它 就像在expressjs中一样 换句话说 In 快递 js你可以做 app get middleware1
  • 何时不使用承诺[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在阅读了数十篇关于 es6 Promise 有多伟大以及为什么我们应该实现它们的文章之后 我有这样的感觉 ALL我的 不平凡的 JavaScri
  • Node.js 可读流_read用法

    我了解如何在 Node 的 new 中使用可写流Streams2库 但我不明白如何使用可读流 举个例子 一个流包装器围绕dgram module var dgram require dgram var thumbs twiddle func
  • 尝试将 Firebase 版本回滚到 2.X

    我最近更新到了新的 Firebase 3 但不幸的是 据我所知 它目前不支持 Geofire 查询 这对我的应用程序很重要 我已经将应用程序中的其他所有内容都转为使用 Firebase 2 但是当我尝试时要将我的应用程序部署到 fireba
  • 如何修复超出最大调用堆栈大小

    有一个 MERN Firebase 应用程序并收到此错误和一堆 atdeepExtend deepCopy ts 71 RangeError Maximum call stack size exceeded getApps as apps
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标
  • 为什么此类方法中的“this”未定义?

    我试图搜索似乎整个互联网 但我仍然对我为微服务编写的 JS 类的问题感到烦恼 仍在学习中 因此 我尝试在实例化对象上调用类方法 根据我的知识和我的 我认为是错误的 单元测试 它应该可以工作 好吧 我将从我收到的错误开始 GET api us
  • 为什么changeResourceRecordSets没有被授权访问此资源?

    我正在尝试在 Route 53 中创建一条别名类型的新记录 以告诉 Route 53 起诉 CloudFront 来为该站点提供服务 我正在尝试使用以下代码来执行此操作 let options ChangeBatch Changes Act
  • 将nodejs Express静态请求重定向到https

    我需要将所有 http 请求重定向到 https 包括对静态文件的请求 My code app use express static dirname public app get function req res if req secure
  • 如何在 Sequelize 现有模型中添加列?

    我使用此命令添加了模型和迁移文件 node modules bin sequelize model generate name User attributes firstName string lastName string email s
  • 缓存消息discord.js

    我想做一些反应角色 但为此 我必须缓存机器人启动之前发送的消息 我尝试过channel messages fetch 但到目前为止还没有奏效 我当前的代码 client on messageReactionAdd async reactio
  • crypto createHMAC 输出根据 Nodejs 版本而有所不同

    我在升级节点版本时遇到加密模块问题 创建的HMAC取决于节点的版本 您将在下面找到重现该问题的代码片段 如果我将密钥编码为 BASE64 或任何 HMAC 不依赖于 node js 版本 如果我将其编码为二进制 则当我更改 Node js
  • 在java中加密字符串,在node.js中解密,错误:解密失败

    我正在尝试用 java 加密一个字符串 将其发送到我的 node js 服务器 然后解密 但是 当我尝试执行此操作时 尝试解密时会不断出现错误 Java加密 String privateKey someprivatekey String d
  • 节点应用程序之间共享会话?

    我目前有两个独立的节点应用程序在两个不同的端口上运行 但共享相同的后端数据存储 我需要在两个应用程序之间共享用户会话 以便当用户通过一个应用程序登录时 他们的会话可用 并且他们似乎已登录到另一个应用程序 在本例中 它是一个面向公众的网站和一
  • npm install 的问题(Angular)

    今天我尝试创建一个新项目 所以我使用这个命令 ng new NAME style less 并在我的cmder中弹出错误和警告 所以我卸载了 Roaming npm 和 npm cache 中的节点和文件 然后我安装了node并再次下载cm
  • 在需要时初始化模块

    我有一个模块 里面有一些初始化代码 加载模块时应执行 init 目前我正在这样做 in the module exports init function config do it in main var mod require myModu
  • 猫鼬中的数组过滤器

    将查询转换为节点 arrayfilter 在 mongoose 中工作的版本或者如何在节点应用程序中运行它们 db getCollection student update id ObjectId 5a377d62d21a3025a3c3a
  • fs-extra:源和目标不能相同。 (科尔多瓦)

    我在使用 cordova 构建时遇到错误 Error Source and destination must not be the same 构建系统 Ionic ionic cli 4 10 1 ionic framework ionic

随机推荐

  • 在 Debian 10 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 创建的证书颁发机构 它通过完全自动化的流程提供免费的 SSL 证书 旨在消除手动证书创建 验证 安装和续订 Let s Encrypt 颁发的证书自颁发之日起 90 天内有效 并
  • 如何在 CentOS 7 上安装 PostgreSQL

    PostgreSQL 或 Postgres 是一种开源通用对象关系数据库管理系统 具有许多高级功能 可让您创建复杂的 Web 应用程序 在本教程中 我们将向您展示如何在 CentOS 7 计算机上安装 PostgreSQL 的两种不同方法
  • 如何在 Ubuntu 18.04 上安装 MariaDB

    MariaDB 是一个开源 多线程关系数据库管理系统 向后兼容 MySQL 的替代品 它由以下机构维护和开发MariaDB基金会包括MySQL的一些原始开发人员 在本教程中 我们将向您展示如何在 Ubuntu 18 04 计算机上安装 Ma
  • 在 CentOS 7 上使用 yum-cron 配置自动更新

    定期更新 CentOS 系统是整个系统安全最重要的方面之一 如果您不使用最新的安全补丁更新操作系统的软件包 您的计算机就会容易受到攻击 如果您管理多台 CentOS 机器 手动更新系统软件包可能会非常耗时 即使您管理单个 CentOS 安装
  • 在 Vim / Vi 中查找和替换

    本文介绍如何在 Vim Vi 中查找和替换文本 Vim 是最流行的命令行文本编辑器 它预装在 macOS 和大多数 Linux 发行版上 在 Vim 中查找和替换文本既快速又简单 基本查找和替换 在 Vim 中 您可以使用以下命令查找和替换
  • 安装和配置 Roundcube Webmail

    这是最后一部分设置和配置邮件服务器系列 其中我们将介绍如何安装和配置 Roundcube Webmail Roundcube 是一个基于 Web 的 IMAP 电子邮件客户端 具有用 PHP 编写的非常直观且现代的用户界面 要使用 Roun
  • Linux 中的自由命令

    我的 Linux 系统上有多少可用 RAM 内存 是否有足够的可用内存来安装和运行新应用程序 在Linux系统中 您可以使用free命令获取有关系统内存使用情况的详细报告 The free命令提供有关物理总量和swap内存 以及空闲和已用内
  • 如何在 Linux 中查找/获取您的 IP 地址

    在排除网络问题 设置新连接或配置防火墙时 了解设备的 IP 地址非常重要 IP 地址可分为两类 公共地址和私有地址 公共IP是唯一的并且可以从互联网访问的IP地址 私有 IP 地址保留供私有网络内部使用 而不直接暴露于 Internet 此
  • Python if..else 语句

    决策是计算机编程最基本的概念之一 Python 支持其他语言中常见的流程控制语句 但进行了一些修改 这if控制语句是最基本和众所周知的语句之一 用于根据特定条件执行代码 在这篇文章中 我们将回顾一下基础知识ifPython 中的语句 Pyt
  • Linux 中的 Echo 命令及示例

    The echo命令是Linux中最基本 最常用的命令之一 参数传递给echo打印到标准输出 echo常用于 shell 脚本中显示消息或输出其他命令的结果 回显命令 echo是 Bash 和大多数其他流行 shell 如 Zsh 和 Ks
  • 如何检查你的 Ubuntu 版本

    当您第一次登录 Ubuntu 系统时 在进行任何工作之前 最好检查一下计算机上运行的 Ubuntu 版本 新的 Ubuntu 版本每六个月发布一次 而 LTS 长期支持 版本每两年发布一次 LTS 版本在桌面和服务器上均受支持五年 其他标准
  • 如何在 Debian 9 上安装和使用 Docker

    Docker 是一个容器化平台 允许您快速构建 测试和部署应用程序作为可移植 自给自足的容器 几乎可以在任何地方运行 Docker 是容器技术事实上的标准 它是 DevOps 工程师及其持续集成和交付管道的重要工具 在本教程中 我们将指导您
  • Linux 中的定位命令

    在 Linux 上工作时最常见的操作之一是搜索文件和目录 Linux 系统上有多个命令允许您搜索文件 其中 find 和locate 是最常用的命令 The locate命令是按名称搜索文件和目录的最快 最简单的方法 在这篇文章中 我们将解
  • Linux 中的 Du 命令

    The du命令是 磁盘使用情况 的缩写 报告给定文件或目录使用的估计磁盘空间量 它对于查找占用大量磁盘空间的文件和目录非常有用 如何使用du命令 的一般语法为du命令如下 du OPTIONS FILE 如果给定FILE是一个目录 du将
  • 如何在 CentOS 7 上安装和配置 VNC

    在本教程中 我们将引导您完成在 CentOS 7 系统上安装和配置 VNC 服务器的步骤 我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器 虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计
  • 如何在 CentOS 7 上安装 Iptables

    从 CentOS 7 开始 防火墙D取代 iptables 成为默认的防火墙管理工具 FirewallD 是一个完整的防火墙解决方案 可以使用名为firewall cmd 的命令行实用程序进行控制 如果您更熟悉 Iptables 命令行语法
  • 如何用 Java 编写您的第一个程序

    作者选择了免费开源基金接受捐赠作为为捐款而写程序 介绍 Java是一种成熟且设计良好的编程语言 用途广泛 从课堂学习到运行任何规模的商业应用程序 它的独特优势之一是它是跨平台的 一旦创建了 Java 程序 就可以在许多操作系统上运行它 包括
  • 如何在 Ubuntu 12.10 上设置 ownCloud 5

    什么是Red Means 用户需要输入或自定义的行将位于red在本教程中 其余的大部分应该是可复制和粘贴的 关于ownCloud ownCloud 是一种开源数据存储解决方案 类似于 Dropbox 或 Google Drive 人们可以获
  • Android RecyclerView 示例 - 多种 ViewType

    到目前为止 我们已经在一个视图中显示了相同类型的视图回收视图 在本教程中 我们将在 RecyclerView 中实现异构布局 回收视图 具有异构布局的 RecyclerView 通常用于显示节标题和详细信息 两者都需要不同的布局 因此需要不
  • 如何在 Ubuntu 18.04 上安装 Node.js

    介绍 Node js是一个用于通用编程的JavaScript平台 允许用户快速构建网络应用程序 通过在前端和后端利用 JavaScript Node js 使开发更加一致和集成 在本指南中 您将了解在 Ubuntu 18 04 服务器上安装