在Debian 8上安装Node.js的方法

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

简介

Node.js 是一个通用编程的 JavaScript 平台,允许用户快速构建网络应用程序。通过在前端和后端都使用 JavaScript,开发可以更加一致,并且可以在同一个系统中设计。

在本指南中,您将在 Debian 8 服务器上安装 Node.js。Debian 8 包含一个版本的 Node.js 在其默认仓库中,但这个版本已经过时,因此您将探索两种方法在您的系统上安装最新版本的 Node.js。

先决条件

要遵循本教程,您需要:

  • 一个具有 sudo 权限的非 root 用户的 Debian 8 服务器。您可以在我们的《在 Debian 8 上进行初始服务器设置》指南中设置具有这些权限的用户。

如何使用 PPA 安装

在服务器上获取最新版本的 Node.js 最快、最简单的方法是添加由 NodeSource 维护的 PPA(个人软件包存档)。这将比官方的 Debian 仓库有更更新的 Node.js 版本。它还允许您在 Node.js v4.x(较旧的长期支持版本,支持到 2017 年 4 月)、v6.x(更近期的 LTS 版本,将支持到 2018 年 4 月)和 Node.js v7.x(当前积极开发的版本)之间进行选择。

首先,安装 PPA 以获取其内容。确保您在您的主目录中,并使用 curl 检索您首选版本的安装脚本,确保用正确的版本字符串替换 6.x

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

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

nano nodesource_setup.sh

并在 sudo 下运行脚本:

sudo bash nodesource_setup.sh

PPA 将被添加到您的配置中,并且您的本地软件包缓存将自动更新。在从 nodesource 运行设置脚本后,您可以以与上面相同的方式安装 Node.js 软件包:

sudo apt-get install nodejs

nodejs 软件包包含 nodejs 二进制文件以及 npm,因此您无需单独安装 npm。但是,为了使一些 npm 包工作(例如那些需要从源代码编译的包),您需要安装 build-essential 软件包:

sudo apt-get install build-essential

如何使用 nvm 安装

通过 apt 安装 Node.js 的另一种选择是使用一个名为 nvm 的专门设计的工具,它代表 “Node.js 版本管理器”。使用 nvm,您可以安装多个独立的 Node.js 版本,这将使您更容易地控制您的环境。它将为您提供最新版本的 Node.js 的按需访问,但也允许您针对您的应用可能依赖的先前版本。

首先,我们需要从我们的 Debian 仓库中获取软件包,这些软件包将允许我们构建源软件包。nvm 命令将利用这些工具来构建必要的组件:

sudo apt-get update
sudo apt-get install build-essential libssl-dev

一旦安装了先决条件软件包,您可以从该项目的 GitHub 页面下载 nvm 安装脚本。版本号可能不同,但通常情况下,您可以使用 curl 下载它:

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

并使用 nano 检查安装脚本:

nano install_nvm.sh

使用 bash 运行脚本:

bash install_nvm.sh

它将安装软件到您的主目录的子目录 ~/.nvm 中。它还将向您的 ~/.profile 文件添加必要的行,以使 nvm 命令可用。

要访问 nvm 命令及其功能,您需要注销并重新登录,或者您可以源化 ~/.profile 文件,以便您当前的会话知道这些更改:

source ~/.profile

现在您已经安装了 nvm,您可以安装隔离的 Node.js 版本。

要了解可供安装的 Node.js 版本,您可以输入:

nvm ls-remote
...
         v6.8.0
         v6.8.1
         v6.9.0   (LTS: Boron)
         v6.9.1   (LTS: Boron)
         v6.9.2   (Latest LTS: Boron)
         v7.0.0
         v7.1.0
         v7.2.0

如您所见,此时最新版本是 v7.2.0,但 v6.9.2 是最新的长期支持版本。您可以通过输入以下命令安装该版本:

nvm install 6.9.2

您将看到以下输出:

Computing checksum with sha256sum
Checksums matched!
Now using node v6.9.2 (npm v3.10.9)
Creating default alias: default -> 6.9.2 (-> v6.9.2)

通常情况下,nvm 将切换到使用最近安装的版本。您可以通过输入以下命令明确告诉 nvm 使用我们刚下载的版本:

nvm use 6.9.2

您可以通过输入以下命令查看当前 shell 使用的版本:

node -v
v6.9.2

如果您安装了多个 Node.js 版本,您可以通过输入以下命令查看已安装的版本:

nvm ls

如果您希望将其中一个版本设置为默认版本,您可以输入以下命令:

nvm alias default 6.9.2

此版本将在您打开新的终端会话时自动选择。您还可以通过别名引用它,如下所示:

nvm use default

每个 Node.js 版本将跟踪其自己的软件包,并且具有可用于管理这些软件包的 npm

您可以通过使用正常格式让 npm 将软件包安装到 Node.js 项目的 ./node_modules 目录。例如,对于 express 模块:

npm install express

如果您希望全局安装它(使其可供使用相同 Node.js 版本的其他项目),您可以添加 -g 标志:

npm install -g express

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

~/.nvm/node_version/lib/node_modules/package_name

全局安装将使您能够从命令行运行命令,但您必须将软件包链接到本地范围以便从程序内部引用它:

npm link express

您可以通过输入以下命令了解 nvm 提供给您的选项:

nvm help

结论

正如你所看到的,有很多种方法可以在你的 Debian 8 服务器上运行 Node.js。你的具体情况将决定上述方法中哪一种对你来说是最佳选择。虽然 Ubuntu 软件仓库中的打包版本是最简单的,但 nvm 方法无疑更加灵活。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视频智能分析平台LntonAIServer视频质量诊断功能花屏、抖动、遮挡等检测

LntonAIServer新增了视频质量诊断功能,该功能专注于提升视频监控系统的稳定性和可用性,主要通过自动化检测来识别视频流中常见的质量问题,比如花屏、抖动、遮挡等问题。这些问题是影响视频监控效果的主要因素之一,而自动化的检测能…

解决el-table中使用el-input无法聚焦问题

在el-table中点击单元格时使用el-input或其他表单组件编辑单条数据。会出现聚焦不上的问题&#xff0c;需要手动点击才能够聚焦。究其原因是因为点击单元格时页面已自动聚焦到单元格&#xff0c;此时无法自动聚焦到对应的表单&#xff0c;需要手动设置。 <template><e…

操作系统八股总结

操作系统八股总结 操作系统的四大功能&#xff1a;进程控制&#xff0c;内存管理&#xff0c;设备管理&#xff0c;文件管理进程的定义:并发程序的执行&#xff0c;进程的同步与互斥进程的状态&#xff1a;创建&#xff0c;终止&#xff0c;就绪&#xff0c;运行&#xff0c;阻…

图论(2)

一、度 度统计的是一个节点上又多少条边 度出度入度 出度&#xff1a;统计以该节点为起始点箭头指向外面的边的条数 入度&#xff1a;统计箭头指向该节点的边数 度为1的节点为悬挂节点&#xff0c;边为悬挂边 用矩阵计算节点的度 二、握手定理 比如这里第一个集合里面有三…

blender图像如何分层导出?blender动画云渲染

在blender渲染时产品会被其他物体影响&#xff0c;这时候就可以用到blender中的阻隔&#xff1b;分层导出图像到PS中进行校色等后期处理。 在分层前&#xff0c;我们需要先打开渲染属性-胶片-透明&#xff0c;这样导出的图像才是透明背景的&#xff0c;反之会变成黑色底。 第一…

传统CV算法——边缘算子与图像金字塔算法介绍

边缘算子 图像梯度算子 - Sobel Sobel算子是一种用于边缘检测的图像梯度算子&#xff0c;它通过计算图像亮度的空间梯度来突出显示图像中的边缘。Sobel算子主要识别图像中亮度变化快的区域&#xff0c;这些区域通常对应于边缘。它是通过对图像进行水平和垂直方向的差分运算来…

VMware Fusion Pro 13 for Mac虚拟机软件

Mac分享吧 文章目录 效果一、下载软件二、开始安装安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件 地址&#xff1a;www.macfxb.cn 二、开始安装 安装完成&#xff01;&#xff01;&#xff01;

【HarmonyOS NEXT】实现截图功能

【HarmonyOS NEXT】实现截图功能 【需求】 实现&#xff1a;实现点击截图按钮&#xff0c;实现对页面/组件的截图 【步骤】 编写页面UI Entry Component struct Screenshot {BuildergetSnapContent() {Column() {Image().width(100%).objectFit(ImageFit.Auto).borderRadi…

Webpack详解与配置环境

webpack&#xff1a;webpack网址 1、工作原理&#xff1a; Webpack是一个非常强大的静态模块的打包工具。从文件入口开始&#xff0c;递归解析以来关系&#xff0c;然后将所有模块打包成一个或多个budle文件。 2、webpack核心概念&#xff1a; Entry&#xff1a;入口起点(en…

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的 会有一个中断源&#xff0c;也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件&#xff0c;也就是产生中断信号&#xff0c;就会执行中断服务函数 但是CPU是如何知道中断源产生后就找到对应的中断…

软件工程知识点总结(1):软件工程概述

1 什么是软件&#xff1f; 定义&#xff1a;计算机系统中的程序及其文档。 ——程序是计算机任务的处理对象和处理规模的描述&#xff1b; ——文档是为了便于了解程序所需要的阐明性资料。 2 软件的特点&#xff1f; 软件是无形的&#xff0c;不可见的逻辑实体 ——它的正确与…

828华为云征文|华为云服务器Flexus X搭建悟空crm管理系统——助力企业云上管理(解决APP Referer校验失败问题)

1、为什么我们企业会选择Flexus云服务器X实例来部署自己的CRM管理系统&#xff1f; 因为基于华为云Flexus X实例搭建CRM管理平台&#xff0c;可以从容面对企业内部瞬息万变的业务压力变化 2、华为云服务器Flexus X方案及优势&#xff1a; 灵活伸缩 搭配弹性伸缩服务AS及负载均…

Selenium 实现图片验证码识别

前言 在测试过程中&#xff0c;有的时候登录需要输入图片验证码。这时候使用Selenium进行自动化测试&#xff0c;怎么做图片验证码识别&#xff1f;本篇内容主要介绍使用Selenium、BufferedImage、Tesseract进行图片 验证码识别。 环境准备 jdk&#xff1a;1.8 tessdata&…

2024国赛数学建模B题完整分析参考论文38页(含模型和可运行代码)

2024 高教社杯全国大学生数学建模完整分析参考论文 B 题 生产过程中的决策问题 目录 摘要 一、问题重述 二、问题分析 三、 模型假设 四、 模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1样例代码&#xff08;仅供参考&#xff09; 4.…

复数随机变量(信号)的方差和协方差矩阵的计算

怎么计算复数随机变量的方差和协方差矩阵&#xff1f; 使得其与MATLAB中var函数和cov函数的结果一致。 前言 复信号在信号处理中随处可见&#xff0c;关于复信号&#xff08;复随机变量&#xff09;的方差和协方差矩阵该如何计算呢&#xff1f;本文给出了复信号的方差和协方差矩…

MarkdownEditor 配置以及使用

MarkdownEditor 配置以及使用 MarkdownEditor是一款基于浏览器的 Markdown 编辑器&#xff0c;虽然他是独立软件&#xff0c;但该软件内嵌一个浏览器。功能非常简单实用、反应速度很快&#xff0c;号称是Markdown领域的NotePad&#xff08;记事本&#xff09;。 MarkdownEdit…

自动驾驶---Motion Planning之轨迹拼接

1 背景 笔者在之前的专栏中已经详细讲解了自动驾驶Planning模块的内容&#xff1a;包括行车的Behavior Planning和Motion Planning&#xff0c;以及低速记忆泊车的Planning。 本篇博客主要聊一聊Motion Planning中轨迹拼接的相关内容。从网络上各大品牌的车主拍摄的智驾视频来看…

B端产品经理的流程设计思维

回首入行产品经理也已多年&#xff0c;做的项目也由C到B&#xff0c;由前到后都已涉及&#xff0c;辗转跨行仍觉互联网学海无涯&#xff0c;还是需要保持输出。思前想后还是决定聊一聊在过往服务多家大型集团的工作经历中十分重要&#xff0c;但却普遍不被视为产品经理必备能力…

Rhinoceros 8 for Mac/Win:重塑三维建模边界的革新之作

Rhinoceros 8&#xff08;简称Rhino 8&#xff09;&#xff0c;作为一款由Robert McNeel & Assoc公司开发的顶尖三维建模软件&#xff0c;无论是对于Mac还是Windows用户而言&#xff0c;都是一款不可多得的高效工具。Rhino 8以其强大的功能、广泛的应用领域以及卓越的性能&…

linux dlopen手册翻译

名称 dlclose, dlopen, dlmopen 打开和关闭一个共享对象 简介 #include <dlfcn.h> void *dlopen(const char*filename, int flags); int dlclose(void *handle);#define _GNU_SOURCE #include <dlfcn.h> void *dlmoopen(Lmid_t lmid, const char *filename, int…