如何在 Ubuntu 18.04 上安装 Node.js 和 npm

2023-11-15

Node.js 是一个开源跨平台 JavaScript 运行时环境,允许服务器端执行 JavaScript 代码。这意味着您可以在计算机上将 JavaScript 代码作为独立应用程序运行,无需使用任何 Web 浏览器。 Node.js 主要用于构建后端服务器端应用程序,但它作为全栈和前端解决方案也非常流行。

Npm 是 Node.js 的默认包管理器,也是世界上最大的软件注册表。

在本教程中,我们将向您展示在 Ubuntu 18.04 上安装 Node.js 和 npm 的几种不同方法。相同的说明适用于任何基于 Ubuntu 的发行版,包括 Kubuntu、Linux Mint 和 Elementary OS。

如果您仅需要 Node.js 作为部署 Node.js 应用程序的本地运行时,那么最简单的选择是从 NodeSource 存储库安装 Node.js。开发人员应该更喜欢使用 NVM 脚本安装 Node.js。

选择适合您环境的安装选项。最好查阅您使用的 Node.js 应用程序的文档,以了解支持哪些 Node.js 版本。

从 NodeSource 安装 Node.js 和 npm#

NodeSource 是一家专注于提供企业级 Node 支持的公司,他们维护一个包含最新版本 Node.js 的存储库。

如果您需要安装特定版本的 Node.js,请使用此存储库。在撰写本文时,NodeSource 存储库提供以下版本 - v14.x、v13.x、v12.x 和 v10.x。我们将安装 Node.js 的当前 LTS 版本,版本 12。

要从 NodeSource 存储库安装 Node.js 和 npm,请按照以下步骤操作:

  1. 通过运行以下命令启用 NodeSource 存储库curl命令作为具有 sudo 权限的用户 :

    curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

    该命令会将 NodeSource 签名密钥添加到您的系统,创建 apt 源存储库文件,安装所有必需的包并刷新 apt 缓存。

    如果您需要安装其他版本,例如14.x,只需更改setup_12.x with setup_14.x

  2. 启用 NodeSource 存储库后,输入以下命令安装 Node.js 和 npm:

    sudo apt install nodejs

    Nodejs 包包含node and npm二进制文件。

  3. 通过打印 Node.js 和 npm 的版本来验证它们是否已成功安装:

    node --version
    v12.16.3
    npm --version
    6.14.4

使用 NVM 安装 Node.js 和 npm#

NVM(节点版本管理器)是一个 bash 脚本,用于管理多个活动的 Node.js 版本。使用 NVM,您可以安装和卸载您想要使用或测试的任何特定 Node.js 版本。

要在 Ubuntu 系统上使用 NVM 安装 Node.js 和 npm,请执行以下步骤:

1.安装NVM(节点版本管理器)脚本#

下载并安装nvm脚本运行:

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

上面的命令会将 NVM 存储库从 Github 克隆到~/.nvm目录:

=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

正如上面的输出所示,您应该关闭并重新打开终端或运行命令添加路径 to nvm脚本到当前 shell 会话。您可以做任何对您来说更容易的事情。

一旦脚本进入你的PATH,验证nvm通过键入以下内容已正确安装:

nvm --version
0.34.0

2.安装Node.js和npm#

现在既然nvm安装完成后,您可以通过键入以下内容来安装最新可用版本的 Node.js:

nvm install node

输出应如下所示:

Downloading and installing node v12.8.1...
Downloading https://nodejs.org/dist/v12.8.1/node-v12.8.1-linux-x64.tar.xz...
######################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v12.8.1 (npm v6.10.2)
Creating default alias: default -> node (-> v12.8.1)

安装完成后,通过打印 Node.js 版本来验证它:

node --version
v12.8.1

我们再安装两个版本,最新的 LTS 版本和 8.10.0 版本

nvm install --ltsnvm install 8.10.0

要列出已安装的 Node.js 版本,请键入:

nvm ls

输出应如下所示:

->      v8.10.0
       v10.16.3
        v12.8.1
default -> node (-> v12.8.1)
node -> stable (-> v12.8.1) (default)
stable -> 12.8 (-> v12.8.1) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/dubnium (-> v10.16.3)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.1 (-> N/A)
lts/dubnium -> v10.16.3

右侧带箭头的条目 (-> v8.10.0) 是当前 shell 会话中使用的 Node.js 版本,默认版本设置为 v12.8.1。默认版本是打开新 shell 时将激活的版本。

您可以通过以下方式更改当前活动版本:

nvm use 10.16.3
Now using node v10.16.3 (npm v6.9.0)

如果要更改默认 Node.js 版本,请使用以下命令:

nvm alias default 10.16.3

从 Ubuntu 存储库安装 Node.js 和 npm#

Node.js 和 npm 软件包可从默认的 Ubuntu 18.04 存储库中获取。

在撰写本文时,Ubuntu 存储库中包含的版本是v8.10.0这是之前的 TLS 版本。

安装nodejs and npm运行以下命令:

sudo apt updatesudo apt install nodejs npm

Ubuntu 存储库中的 Node.js 可执行文件名为nodejs代替node因为与另一个包冲突。

通过执行以下命令验证安装:

nodejs --version
v8.10.0

安装开发工具#

为了能够从 npm 编译和安装本机附加组件,您需要安装开发工具。

以下命令将安装所有必需的软件包,包括海湾合作委员会编译器 :

sudo apt install build-essential

卸载 Node.js#

如果由于某些原因您想要卸载Node.js 和 npm 包,可以使用以下命令:

sudo apt remove nodejs npm

结论#

我们向您展示了在 Ubuntu 18.04 服务器上安装 Node.js 和 npm 的三种不同方法。您选择的方法取决于您的要求和偏好。尽管从 Ubuntu 或 NodeSource 存储库安装打包版本更容易,但 nvm 方法为您提供了更大的灵活性,可以在每个用户的基础上添加和删除不同的 Node.js 版本。

如果你想用yarn管理你的npm包,你可以查看这个教程如何在Ubuntu 18.04上安装和使用yarn .

如果您有任何问题或反馈,请随时在下面发表评论。

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

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

  • Express URIError:无法解码参数

    当请求的参数包含时 我将 next js 与自定义 Express 服务器一起使用 它会导致此错误 URIError Failed to decode param faker at decodeURIComponent
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标
  • 如何在Windows的node js中设置默认时区

    我正在尝试在应用程序启动时设置时区 set TZ UTC node main js 但这不起作用 main js var tz process env TZ var date new Date console log tz date UTC
  • 使用Nodejs、Express和AngularJS在浏览器中显示IP

    我正在学习 Nodejs 和 ExpressJS 我正在尝试使用 ExpressJS 和 2 个节点模块 请求IP https www npmjs com package request ip and geoip2 https www np
  • “gulp”不被识别为内部或外部命令

    我正在尝试使用Gulp http gulpjs com and Node Js https nodejs org en 流式传输我的生产过程中缩小和连接 CSS JS 文件的过程 这是我所做的 我安装了Node Js https nodej
  • 如何在 Nodejs - mongodb 搜索中对结果进行排序,但是,通过调用动态方法

    我正在 Nodejs 中开发一个 Web 应用程序 通过 mongo 本机连接器连接到 mongodb 在我的一个 js 文件中 我有一个通用方法来调用 find 或 findOne 操作以从 mongodb 集合中检索我需要的任何内容 如
  • 使用 Sequelize (NodeJS) 代替 * 指定特定字段

    好吧 我在 NodeJS 中有一个项目 我正在其中使用 Sequelize 来实现 MySQL ORM 这件事工作得非常好 但是我试图弄清楚是否有一种方法可以指定在查询的基础上返回哪些字段 或者是否有一种方法可以在某处执行 query 例如
  • 如何在 Sequelize 现有模型中添加列?

    我使用此命令添加了模型和迁移文件 node modules bin sequelize model generate name User attributes firstName string lastName string email s
  • 通过 Amazon SQS 将压缩文本从 PHP 发送到 NodeJS

    我似乎一直坚持通过 Amazon SQS 将压缩消息从 PHP 发送到 NodeJS 在 PHP 方面我有 SQS gt sendMessage Array QueueUrl gt queueUrl MessageBody gt artic
  • PDF 附件 NodeMailer

    预先感谢您的回复 我编写了一些使用nodemailer 0 7 1的代码 它发送电子邮件并将pdf附加到电子邮件中 但是 pdf 附件在编码时会自行损坏或截断或发生其他情况 我之所以说这是附件之前的文件 即我本地的文件 是512kb 而电子
  • 等待承诺的 fs.writeFile 与 fs.writeFileSync

    此选项之一有一些优点吗 1 const fs require fs const testFunc1 async gt fs writeFileSync text txt hello world 2 const fs require fs c
  • 为 Promise 编写循环的正确方法。

    如何正确构造循环以确保满足以下条件承诺电话和被束缚的记录器 log res 通过迭代同步运行 蓝鸟 db getUser email then function res logger log res this is a promise 我尝
  • Mongodb 以不区分大小写的方式排序

    我在 Nodejs express 中以 mongodb 作为数据库的一个项目中非常努力地构建 当我使用 sort 获取所有数据时 它以错误的方式返回数据 那么有没有办法按照我的预期得到正确的格式 如下所示 如果我们在数据库中有三个记录 i
  • 在java中加密字符串,在node.js中解密,错误:解密失败

    我正在尝试用 java 加密一个字符串 将其发送到我的 node js 服务器 然后解密 但是 当我尝试执行此操作时 尝试解密时会不断出现错误 Java加密 String privateKey someprivatekey String d
  • 什么是 TTY?如何在 Ubuntu 上启用它?

    我目前正在设置一个 Node js 服务器 并且在这里使用调试模块https github com visionmedia debug https github com visionmedia debug 我正在尝试启用它 以便我可以在输出
  • 在node.js 0.12.x中使用libuv函数

    我写了一个node js c 插件 在node js 0 10 x下可以成功编译 但是当迁移到0 12 x时 出现了一些错误 例如error C2065 uv work t undeclared identifier 我想知道我是否可以在0
  • 如何使用公共客户端颁发的令牌查询keycloak资源权限

    我有一个受 keycloak 保护的前端 Javascript 客户端 前端应用程序的 Keycloak 客户端类型为Public并打电话给blog gui 我还有一个受保护的 APIConfidential客户端名为 blog api 其
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • 更改“/usr/bin/”的所有权:不允许操作

    我刚刚改变了我的所有者 犯了一个巨大的错误 usr bin from root对一个普通人user 每当我尝试执行时 sudo chown root usr bin这给了我 chown changing ownership of usr b
  • 如何清除node.js中的超时

    您好 我们正在使用 node js socket io 和 redis 开发应用程序 我们有这个程序 exports processRequest function request result var self this var time

随机推荐

  • 如何在 Linux 中打开端口

    在 Linux 操作系统中 端口是用于通过网络发送或接收数据的通信端点 网络端口由数字标识 每个端口号与特定类型的网络服务相关联 例如 端口 80 用于 HTTP 流量 端口 21 用于 FTP 端口 25 用于电子邮件 为了建立网络连接
  • 在 Bash 中使用管道 (|) 运算符

    Bash 脚本是管理和在类 Unix 系统上工作的一个组成部分 管道运算符 是 Bash 脚本工具包中一个非常强大的工具 尽管外观简单 但它是高效命令行操作 简化流程和实现复杂数据操作的基石 本文深入探讨了管道运算符的使用 探讨它是什么 它
  • 如何在 Bash 脚本中获取当前日期和时间

    作为一种脚本语言 Bash 广泛用于系统管理任务和自动化 Bash 脚本中的一项常见任务是获取当前日期和时间 这 date 命令以特定格式返回当前日期和时间 但您也可以使用自定义格式字符串来获取任何格式的日期和时间 在本文中 我们将探讨如何
  • Linux 中的 Uname 命令

    在本文中 我们将介绍uname命令 uname是一个命令行实用程序 可打印有关操作系统名称和系统硬件的基本信息 uname命令 The uname工具最常用于确定处理器架构 系统主机名和内核版本系统上运行 的语法uname命令采用以下形式
  • Linux中的Find命令(查找文件和目录)

    The find命令是 Linux 系统管理员工具库中最强大的工具之一 它根据用户给定的表达式在目录层次结构中搜索文件和目录 并可以对每个匹配的文件执行用户指定的操作 您可以使用find命令根据文件和目录的权限 类型 日期 所有权 大小等搜
  • 如何在 CentOS 7 上安装 Apache Cassandra

    Apache Cassandra 是一款开源 NoSQL 数据库 无单点故障 提供线性可扩展性和高可用性 且不会影响性能 在 Cassandra 中 记录的结构与关系数据库中的表 行和列类似 Apache Cassandra 被许多组织使用
  • 猛击直到循环

    循环是编程语言的基本概念之一 当您想要一遍又一遍地运行一系列命令直到满足特定条件时 循环会很方便 在 Bash 等脚本语言中 循环对于自动执行重复任务非常有用 Bash 脚本中有 3 种基本循环结构 for loop while 循环 an
  • 如何在树莓派上安装 Ubuntu

    Raspberry Pi 是有史以来最受欢迎的单板计算机 它可用于多种用途 如台式电脑 家庭媒体中心 智能 Wi Fi 路由器 自动化系统和游戏服务器 用例是无穷无尽的 如果您的 Raspberry Pi 没有预装 NOOBS 的 SD 卡
  • 如何在 Debian 9 上安装 Python 3.7

    Python 是世界上最流行的编程语言之一 Python 以其简单易学的语法成为初学者和经验丰富的开发人员的绝佳选择 Python 是一种非常通用的编程语言 您几乎可以用它来做任何您想做的事情 编写小脚本 构建游戏 开发网站 创建机器学习算
  • 如何在 Ubuntu Linux 上挂载 exFAT 驱动器

    exFAT 扩展文件分配表 是 Microsoft 专有的文件系统 针对 SD 卡和 USB 闪存驱动器等闪存设备进行了优化 它旨在取代旧的 32 位 FAT32 文件系统 该系统无法存储大于 4 GB 的文件 所有最新版本的 Window
  • 如何在 Ubuntu 18.04 上安装 Slack

    Slack是世界上最受欢迎的协作平台之一 它将您的所有通信汇集在一起 Slack 中的对话按频道组织 您可以为您的团队 项目 主题或任何其他目的创建频道 以保持信息和对话井井有条 您可以搜索频道或消息中发布的所有内容 Slack 还允许您通
  • 如何在 Debian 9 上安装 Skype

    Skype是世界上最受欢迎的通信应用程序之一 可让您免费进行在线音频和视频通话 并以经济实惠的价格拨打全球手机和固定电话 Skype 不是开源应用程序 也不包含在 Debian 存储库中 在本教程中 我们将解释如何在 Debian 9 上安
  • Bash 序列表达式(范围)

    在本文中 我们将介绍 Bash 中序列表达式的基础知识 Bash 序列表达式通过定义范围的起点和终点来生成整数或字符范围 一般与以下组合使用for loops Bash 序列表达式 序列表达式采用以下形式 START END INCREME
  • 如何使用 psql 列出 PostgreSQL 数据库和表

    给药时PostgreSQL在数据库服务器中 您可能执行的最常见任务之一是列出数据库及其表 PostgreSQL 附带了一个交互式工具 称为psql 它允许您连接到服务器并对其运行查询 使用时psql您还可以利用它的元命令 这些命令对于脚本编
  • Linux 中的 Gunzip 命令

    Gunzip 是一个用于解压缩 Gzip 文件的命令行工具 Gzip 是最流行的压缩算法之一 它可以减小文件大小并保留原始文件模式 所有权和时间戳 按照惯例 使用 Gzip 压缩的文件要么是 gz or z扩大 在本教程中 我们将解释如何使
  • 如何在 CentOS 7 上安装和配置 Squid 代理

    Squid 是一个功能齐全的缓存代理 支持流行的网络协议 如 HTTP HTTPS FTP 等 将 Squid 放置在 Web 服务器前面可以通过缓存重复请求 过滤 Web 流量和访问地理限制内容来极大地提高服务器性能 本教程介绍如何在 C
  • 如何在 Ubuntu 18.04 上安装 Gitea

    Gitea 是一个用 Go 编写的自托管开源 git 服务器 它是一个叉子Gogs Gitea 包括存储库文件编辑器 项目问题跟踪 用户管理 通知 内置 wiki 等等 Gitea是一个轻量级应用程序 可以安装在低功耗系统上 如果您正在寻找
  • 如何在 Ubuntu 20.04 上添加和删除用户

    配置新 Ubuntu 系统时的首要任务之一是添加和删除用户 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 本文介绍如何在 Ubuntu 18 04 上添加和删除用户帐户 在你开始之前 仅 root 或具有 sud
  • 如何在 Raspberry Pi 上安装 Plex 媒体服务器

    Raspberry Pi 可用于许多不同的项目 Raspberry Pi 最受欢迎的用例之一是将 Raspberry Pi 变成家庭媒体中心 Plex 是一款流行的流媒体服务器 可让您组织视频 音乐和照片收藏 并将它们随时随地流式传输到您的
  • 如何在 Ubuntu 18.04 上安装 Node.js 和 npm

    Node js 是一个开源跨平台 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 这意味着您可以在计算机上将 JavaScript 代码作为独立应用程序运行 无需使用任何 Web 浏览器 Node js 主要