如何在 Ubuntu 20.04 上安装 Node.js

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。

如何在 Ubuntu 20.04 上安装 Node.js

介绍

Node.js是用于服务器端编程的 JavaScript 运行时。它允许开发人员使用 JavaScript 创建可扩展的后端功能,这是许多人在基于浏览器的 Web 开发中已经熟悉的语言。

在本文中,我们将展示在 Ubuntu 20.04 服务器上安装 Node.js 的三种不同方法:

  • 用于从 Ubuntu 的默认软件存储库apt安装软件包nodejs
  • apt与备用 PPA 软件存储库一起使用来安装nodejs包的特定版本
  • 安装Node 版本管理器nvm,并使用它来安装和管理 Node.js 的多个版本

对于许多用户来说,使用apt默认存储库就足够了。如果需要特定的较新或旧版本的 Node,则应使用 PPA 存储库。如果正在积极开发 Node 应用程序并需要node频繁地在版本之间切换,请选择nvm方法。

笔记

本文将引导完成在 Ubuntu 服务器上安装 Node.js。

先决条件

要遵循本本,需要设置 Ubuntu 20.04 服务器。在开始之前,应该拥有一个在系统上设置了权限的非root用户帐户。可以按照Ubuntu 20.04 初始服务器设置教程来了解如何执行此操作。

选项 1 — 使用 Apt 从默认存储库安装 Node.js

Ubuntu 20.04 在其默认存储库中包含 Node.js 版本,可用于跨多个系统提供一致的体验。本文将使用版本为 10.19。

警告: Ubuntu 20.04 版本 10.19 中包含的 Node.js 版本现在不受支持和维护。不应在生产中使用此版本,而应参考本教程中的其他部分之一来安装更新版本的 Node.js。

要获取此版本,可以使用apt包管理器。首先刷新本地包索引:

sudo apt update

然后安装 Node.js:

sudo apt install nodejs

通过node查询版本号检查安装是否成功:

node -v
Outputv10.19.0

如果存储库中的包满足需求,到这里安装就完成。在大多数情况下,还需要安装Node.js 包管理器。可以通过以下方式安装npm

sudo apt install npm

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

至此,我们已经成功安装了 Node.js 并使用了默认的 Ubuntu 软件存储库。

选项 2 — 使用 NodeSource PPA 通过 Apt 安装 Node.js

要安装不同版本的 Node.js,可以使用NodeSource 维护的*PPA (个人包存档)。*这些 PPA 提供的 Node.js 版本比官方 Ubuntu 存储库更多。

首先,安装 PPA 以访问其软件包。从主目录中,用于curl检索首选版本的安装脚本,确保替换16.x(可以选择16或18版本,这里用的16)为首选版本字符串(如果不同):

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

有关可用版本的更多信息,请参阅NodeSource 文档。

使用喜欢的文本编辑器检查下载脚本的内容:

nano /tmp/nodesource_setup.sh

当确信脚本可以安全运行时,退出编辑器。然后运行脚本:

sudo bash /tmp/nodesource_setup.sh

PPA 将添加到配置中,本地包缓存将自动更新。现在,可以按照与上一节相同的方式安装 Node.js 包:

sudo apt install nodejs

通过运行node -v来验证是否已安装新版本:

node -v
Outputv16.19.0

NodeSource包同时包含node二进制文件和npm,因此无需单独安装npm

至此,已成功安装 Node.js 。

选项 3 — 使用节点版本管理器安装节点

安装 Node.js 的另一种特别灵活的方法是使用 nvm(节点版本管理器)。该软件允许同时安装和维护许多不同的独立版本的 Node.js 及其关联的 Node 包。

要在 Ubuntu 20.04 计算机上安装 NVM,请访问该项目的 GitHub 页面。从主页上显示的自述文件中复制命令。

在将命令通过管道传输到bash 之前,最好先审核脚本以确保它没有执行任何我们不同意的操作。可以通过删除curl命令末尾的| bash段来做到这一点:

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

检查脚本并确保之后,再次运行该命令并在末尾添加| bash。这时使用的 URL 将根据 nvm 的最新版本而变化,但从现在开始,可以使用以下命令下载并执行脚本:

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

这会将nvm脚本安装到我们的用户帐户。要使用它,必须首先获取.bashrc文件:

source ~/.bashrc

现在,可以询问 NVM 哪些版本的 Node 可用:

nvm list-remote
Output. . .v18.0.0v18.1.0v18.2.0v18.3.0v18.4.0v18.5.0v18.6.0v18.7.0v18.8.0v18.9.0v18.9.1v18.10.0v18.11.0v18.12.0   (LTS: Hydrogen)v18.12.1   (LTS: Hydrogen)v18.13.0   (Latest LTS: Hydrogen)v19.0.0v19.0.1v19.1.0v19.2.0v19.3.0v19.4.0

这是一个很长的清单。可以通过写入列出的任何发行版本来安装 Node 版本。例如,要获取版本 v14.10.0,可以运行:

nvm install v14.10.0

可以通过列出来查看已安装的不同版本:

nvm list
Output->     v14.10.0v14.21.2
default -> v14.10.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v14.21.2) (default)
stable -> 14.21 (-> v14.21.2) (default)
. . .

这在第一行中显示当前活动的版本-> v14.10.0,后面是一些命名别名以及这些别名指向的版本。

**注意:**如果还通过apt安装了 Node.js 版本,可能会在system处收到一条目录。我们始终可以使用nvm use system 激活系统安装的 Node 版本。

此外, Node 的各种长期支持(或 LTS)版本还有别名:

Outputlts/* -> lts/hydrogen (-> 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.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.2
lts/gallium -> v16.19.0 (-> N/A)
lts/hydrogen -> v18.13.0 (-> N/A)

也可以安装基于这些别名的版本。例如,要安装最新的长期支持版本,请运行以下命令:

nvm install lts/hydrogen
OutputDownloading and installing node v18.13.0...
. . .
Now using node v18.13.0 (npm v8.19.3)

可以使用以下命令在已安装的版本之间切换nvm use

nvm use v14.10.0
OutputNow using node v14.10.0 (npm v6.14.8)
```You can verify that the install was successful using the same technique from the other sections:```command
node -v
Outputv14.10.0

现在计算机上已按预期安装了正确版本的 Node。npm还提供了兼容版本。

删除 Node.js

可以使用aptnvm卸载 Node.js ,具体使用哪一个取决于它的安装方式。要从系统存储库中删除版本,请使用apt remove

sudo apt remove nodejs

默认情况下,apt remove保留自安装以来创建的所有本地配置文件。如果不想保存配置文件以供以后使用,请使用apt purge

sudo apt purge nodejs

要卸载使用nvm安装的 Node.js 版本,请首先确定它是否是当前活动版本:

nvm current

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

nvm uninstall node_version
OutputUninstalled node node_version

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

如果要删除的版本是当前活动版本,首先需要停用nvm才能启用更改:

nvm deactivate

现在可以使用之前使用的命令uninstall卸载当前版本。这个会删除与 Node.js 目标版本关联的所有文件。

结论

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于jackson封装的json字符串与javaBean对象转换工具

文章目录 一、概述二、编码实现1. pom文件引入组件2. 核心代码 三、功能测试1. 测试文件2. 测试代码 四,完整代码 一、概述 带有API接口交互的web项目开发过程中,json字符串与javaBean对象之间的相互转换是比较常见的需求,基于jackson Objec…

数控开料机对比木工雕刻机的优势

数控开料机和木工雕刻机都属于木工机械加工设备,都可以用来开料和雕刻,但在市场价格、床体结构、技术要求等方面二者存在不小的差异,那么全自动数控开料机对比普通木工雕刻机有什么优势呢。 首先我们都知道,木工雕刻机主要应用于…

鸿蒙开发之组件不同状态样式设置stateStyles

开发中会有一种场景,组件(如:按钮)在不同状态下展示的样式不同。例如在normal状态和按下状态显示不同的样式,这个时候就可以通过stateStyles属性来设置组件。 Entry Component struct OfficialStateStylePage {State …

【5种常见的rpc封装方案】

1)回调(唯一callbackId) 1.显式回调写法 // 自己封装callbackId send(msgId, req, (data)->{ }) 隐式回调写法: send(msgId, req); ResHandler(data){ } 协程其实也算是隐式的写法,毕竟协程只能在进程内通信,只不过算是等到对方回复后&#xff0…

开启golang学习之路

Go 编程语言是一个开源项目,旨在提高程序员的工作效率。 Go 富有表现力、简洁、干净且高效。它的并发机制使编写能够充分利用多核和联网机器的程序变得容易,而其新颖的类型系统可以实现灵活和模块化的程序构建。 Go 可以快速编译为机器代码,…

Prometheus实战篇:Alertmanager配置概述及告警规则

Prometheus实战篇:Alertmanager配置概述及告警规则 在此之前,环境准备和安装我就不在重复一遍了.可以看之前的博客,这里我们直接步入正题. Alertmanager配置概述 Alertmanager主要负责对Prometheus产生的告警进行统一处理,因此在Alertmanager配置中一般会包含以下几个主要部分…

电脑提示dll丢失怎么办,教你一招将dll修复

使用电脑时,你的电脑是否出现关于dll文件丢失或找不到的问题,出现这种问题又该如何解决呢,dll文件问题会导致软件无法打开,或者会导致系统崩溃。今天就来教大家如何快速解决dll文件修复。 一.如何修复dll修复 方法一:…

虹科分享 | 实现网络流量的全面访问和可视性——Profitap和Ntop联合解决方案

文章速览: 为什么客户抱怨“网速太慢”?网络流量监控联合解决方案Profishark&Ntop联合解决方案的优势 这次和大家分享如何捕捉、分析和解读网络数据,从而更有效地监控网络流量,实现网络性能的最大化。先来看一个实际的问题—…

计算机体系结构----重排序缓冲(ROB)

ROB的思想:不按顺序完成指令,但在使结果对体系结构状态可见之前重新排序 当指令被解码时,它会在 ROB 中保留下一个顺序条目当指令完成时,它将结果写入 ROB 条目当指令在 ROB 中最早并且无一例外地完成时,其结果移动到…

HJ12 字符串反转

题目描述 接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000) 题目来源 题目来源 输入描述 输入一行,为一个只包含小写字母的字符串。 输出描述: 输入一行,为一…

mathglm代码调试记录

论文地址:https://arxiv.org/pdf/2309.03241v2.pdf 项目地址:https://github.com/THUDM/MathGLM#arithmetic-tasks 数据集格式: 读取数据集代码: def make_loaders(args, create_dataset_function):"""makes t…

检测并批量导出项目文件中所有最近修改文件的实用工具

本篇文章主要讲解工具的使用和操作教程,这是一个能够检测项目内最近修改的文件并保留路径导出文件的实用工具。 日期:2024年1月10日 工具介绍: 这是一款可以帮助你自动检测并导出指定文件修改时间内的文件及文件目录的实用工具,在…

PDO【配置】

PDOr: 6040 控制字 6060 模式 6083 加速度 6084 减速度 =====================【定位1】:// 补间7 607A 定位位置 6081 定位速度 =====================【速度3】: 60FF 目标速度 =====================【力矩4…

Python语言基础

目录 任务驱动式学习 任务一:输出问候语 一、Python程序的两种编程模式 二、Python程序的执行方式——解释执行 三、基本输入输出函数 任务二:计算圆的周长和面积 一、语句块缩进 二、变量与对象 三、数据类型及转换 四、数字类型及运算 五、…

在 WinForms 应用程序中实现 FTP 文件操作及模式介绍

在 WinForms 应用程序中实现 FTP 文件操作及模式介绍 简介 在许多应用程序中,能够从远程服务器获取文件是一个非常有用的功能。本文将详细介绍如何在 Windows Forms (WinForms) 应用程序中使用 FTP 协议进行文件操作,包括连接到 FTP 服务器、列出目录、…

(每日持续更新)jdk api之DataInputStream基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿&…

高并发下的计数器实现方式:AtomicLong、LongAdder、LongAccumulator

一、前言 计数器是并发编程中非常常见的一个需求,例如统计网站的访问量、计算某个操作的执行次数等等。在高并发场景下,如何实现一个线程安全的计数器是一个比较有挑战性的问题。本文将介绍几种常用的计数器实现方式,包括AtomicLong、LongAd…

超市账单管理系统产品数据新增Servlet实现

超市账单管理系统产品数据新增Servlet实现 package com.test.controller; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import ja…

3.4 在开发中使用设计模式

现在,我们应该对设计模式的本质以及它们的组织方式有了初步的认识,并且能够理解ROPES过程在整体设计中的作用。通过之前章节对“体系结构”及其五个视图的探讨,我们打下了坚实的基础。初步了解了UML的基本构建模块后,我们现在可以…

gem5学习(11):将缓存添加到配置脚本中——Adding cache to the configuration script

目录 一、Creating cache objects 1、Classic caches and Ruby 二、Cache 1、导入SimObject(s) 2、创建L1Cache 3、创建L1Cache子类 4、创建L2Cache 5、L1Cache添加连接函数 6、为L1ICache和L1DCache添加连接函数 7、为L2Cache添加内存侧和CPU侧的连接函数 完整代码…