Centos安装nvm管理node版本(让安装变得可控又快捷)

Centos安装nvm管理node版本(让安装变得可控又快捷)

在这里插入图片描述

没有找到一个对的人,有可能是你没有走对那条路,也有可能是你没有睁开眼睛,而更大的可能是,你根本就没有出发去找。

安装说明

nvm安装目录:/usr/local/src/nvm

nvm下载地址:https://github.com/nvm-sh/nvm/releases

image-20240529100758258

有很多博客这样配置,包括官网,个人不太喜欢

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
bash: source ~/.bashrc
zsh: source ~/.zshrc
ksh: . ~/.profile

source ~/.bashrcsource /etc/profile 都是用来重新加载 Shell 配置文件的命令,但它们加载的文件不同,因此功能也略有不同。

  1. source ~/.bashrc:

    这个命令用于重新加载当前用户的 Bash Shell 配置文件 ~/.bashrc~/.bashrc 文件通常包含了用户自定义的环境变量、别名和函数等设置。当你在 ~/.bashrc 中进行了修改,并希望立即生效时,可以使用 source ~/.bashrc 命令重新加载该文件。

  2. source /etc/profile:

    这个命令用于重新加载系统范围的 Shell 配置文件 /etc/profile/etc/profile 文件通常包含了系统范围的环境变量设置,以及一些系统级别的配置。在多用户环境下,修改 /etc/profile 可以影响到所有用户的 Shell。

因此,区别在于加载的配置文件不同。~/.bashrc 是针对当前用户的 Bash Shell 配置文件,而 /etc/profile 是系统范围的 Shell 配置文件。所以为了图省事,我喜欢第二种!

下载安装包

下载自己适用的nvm版本,然后上传到服务器,或者可以使用wget直接下载到服务器

cd /usr/local/src/nvm
wget -O nvm-0.39.7.tar.gz https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.7.tar.gz

image-20240529101218740

文件解压

然后对于压缩包进行解压

cd  /usr/local/src/nvm
tar -xvf nvm-0.39.7.tar.gz

进入解压后的目录

image-20240529101316198

配置环境变量

这里,如果执行install.sh会安装到家目录,我们为了统一管理,我们直接自主配置,我们直接将环境变量写入系统,避免后期的配置问题,方法如下:

vim /etc/profile

加入如下配置:

export NVM_HOME=/usr/local/src/nvm/nvm-0.39.7  #自己的安装目录
[ -s "$NVM_HOME/nvm.sh" ] && \. "$NVM_HOME/nvm.sh" # This loads nvm

image-20240529110848943

然后执行如下命令,刷新环境变量

 source /etc/profile

验证安装

image-20240529111015068

更改nvm安装镜像源

在nvm的安装根目录下,找到nvm.sh脚本,修改第2029行左右的镜像配置,将nvm镜像源切换为阿里源

 node-std) NVM_MIRROR="${NVM_NODEJS_ORG_MIRROR:-https://npmmirror.com/mirrors/node/}" ;;

image-20240529114836590

安装node

然后我们就可以秒下node

image-20240529111610914

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

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

相关文章

vue项目出现多次ElMessage

问题: 解决方法: let message null if (message null) { message ElMessage.error(“登录过期,请重新登录”); } 最终效果:只出现一个弹框

N进制计数器【02】

大容量N进制计数器 集成计数器容量的扩展 集成计数器级联扩展容量 【例1】由两片 74LS161 级联组成 256 进制(8位二进制)同步加法计数器 【解】级联时,外加时钟信号同时接到各片计数器的时钟输入端,用前级计数器的进位输出 C…

蓝硕硬盘数据恢复方法详解:安全、高效的解决方案

在数字化时代,硬盘作为我们存储和传输数据的重要载体,其数据安全性显得尤为重要。然而,无论是由于误操作、硬件故障还是病毒攻击,硬盘数据丢失的风险始终存在。蓝硕硬盘作为市场上的一款知名产品,其数据恢复同样是我们…

突破空间限制,这些远程控制软件为父母送上“手把手”的教导,解决异地办公难题,出差无忧

在现代社会,科技的飞速发展带来了诸多便利,但同时也给一些年长的父母们带来了困扰。 当父母们面对智能手机电脑等高科技产品时,他们往往感到无所适从,而子女们忙于工作、学习或其他原因,常常无法时刻陪伴在父母身边&a…

【Unity iOS打包】Library not loaded: ‘@rpath/AdjustSdk.framework/AdjustSdk‘

Unity打包iOS,XCode运行App黑屏卡死,报错: dyld[8412]: Library not loaded: rpath/AdjustSdk.framework/AdjustSdkReferenced from: /private/var/containers/Bundle/Application/C019F943-138F-4B33-AAC1-F18453F942D9/AnimalsBAMBAM.app/…

手写promise、call、apply、debounce、throttle 等

1、promise 1.1 实现resolve和reject class MyPromise {// 构造方法constructor(executor) {// 初始化值this.initValue()// 初始化this指向this.initBind()try {// 执行传进来的函数executor(this.resolve, this.reject)} catch (e) {// 捕捉到错误直接执行rejectthis.rejec…

Gartner发布评估威胁情报计划有效性指南:评估威胁情报有效性的四个步骤

许多组织都在努力实施 TI 并评估其价值。安全和风险管理领导者必须使用优先情报要求来评估其 TI 计划的有效性,并根据其组织战略完善该计划。 主要发现 尽管许多组织已将威胁情报 (TI) 纳入其安全计划,但他们很难评估其性能、成熟度以及在相关产品和服务…

再次疾呼:一稿多投是作者的合法权利!

近日,有作者反应在收到拒稿邮件之后另投他刊,竟然被判定一稿多投。 出版社解释说现在大多数期刊都是使用投稿系统收稿,如果被退稿后马上又投稿其他期刊,由于时间距离太近,仍然会被系统判定为一稿多投的。核心期刊编辑…

深入探索C++继承机制:从概念到实践的全面指南

目录 继承的概念及定义 继承的概念 继承的定义 定义格式 继承方式和访问限定符 继承基类成员访问方式的变化 默认继承方式 基类和派生类对象赋值转换 继承中的作用域 派生类的默认成员函数 继承与友元 继承与静态成员 继承的方式 菱形虚拟继承 菱形虚拟继承原理 继承…

「盘点」JetBrains IDEs v2024.1新功能一览,更智能的开发体验!

JetBrains IDEs日前正式发布了v2024.1版本,此版本中最大的亮点就是带来了AI赋能的全行代码补全,同时在最新的IDEs中重做了终端、拥有更强大的代码编辑和导航功能、更智能的代码分析和提示、更优化的性能、更丰富的插件和集成等。总的来说,Jet…

淘宝API探秘:一键获取店铺所有商品的魔法之旅

在数字时代的今天,数据已经成为了商业世界中的魔法石。而对于淘宝店主或者那些想要深入探索淘宝数据的人来说,淘宝API就像是打开阿里巴巴宝藏库的钥匙。今天,我们就来一起探索如何使用淘宝API,特别是如何获取店铺所有商品的接口&a…

为WPF的Grid添加网格边框线

在WPF中使用Grid绘制表格的时候,如果元素较多、排列复杂的话,界面会看起来很糟糕,没有层次,这时用网格或边框线分割各元素(标签或单元格)将会是页面看起来整齐有条理。 默认没有边框线的如下图所示&#xf…

Java 循环嵌套深度揭秘:挑战极限与性能优化

哈喽,大家好,我是木头左! 探索Java的调用栈极限 在Java中,方法调用是通过栈(Stack)这种数据结构来实现的。每当一个方法被调用时,一个新的栈帧(Stack Frame)会被创建并压…

React 中的 Fiber 架构

React Fiber 介绍 React Fiber 是 React 的一种重写和改进的核心算法,用于实现更细粒度的更新和高效的调度。它是 React 16 版本中的一个重要更新,使得 React 能够更好地处理复杂和高频的用户交互。以下是对 React Fiber 的详细介绍: 为什么…

便民社区信息小程序源码系统 功能强大 带生活电商+求职招聘功能 带完整的安装代码包以及搭建教程

系统概述 便民社区信息小程序源码系统是一款集多种功能于一身的综合性平台。它旨在为用户提供便捷的生活服务,满足社区居民的各种需求。无论是购物、求职还是获取社区信息,都能在这个平台上得到满足。该系统采用先进的技术架构,确保系统的稳…

【python 进阶】 绘图

1. 将多个柱状绘制在一个图中 import seaborn as sns import matplotlib.pyplot as plt import numpy as np import pandas as pd# 创建示例数据 categories [A, B, C, D, E] values1 np.random.randint(1, 10, sizelen(categories)) values2 np.random.randint(1, 10, siz…

揭秘!编写高质量代码的关键:码农必知的黄金法则!

文章目录 一、保持代码的简洁与清晰二、遵循良好的命名规范三、注重代码的可读性四、利用抽象与封装五、遵循SOLID原则六、关注代码性能七、确保代码安全性《码农修行:编写优雅代码的32条法则》编辑推荐内容简介目录前言/序言 在编程的世界里,每一位码农…

VSCode 报错 之 运行 js 文件报错 ReferenceError: document is not defined

1. 背景 持续学习ing 2. 遇到的问题 在VSCode 右键 code runner js 文件报错 ReferenceError: document is not defined eg: // 为每个按钮添加点击事件监听器 document.querySelectorAll(button).forEach(function (button) {button.addEventListener(click, f…

python基础-数据结构-leetcode刷题必看-heapq --- 堆队列算法

文章目录 堆的定义堆的主要操作堆的构建堆排序heapq模块heapq.heappush(heap, item)heapq.heappop(heap)heapq.heappushpop(heap, item)heapq.heapreplace(heap, item)heapq.merge(*iterables, keyNone, reverseFalse)heapq.nlargest(n, iterable, keyNone)heapq.nsmallest(n, …

赛氪网与武汉外语外事职业学院签署校企合作,共创职业教育新篇章

5月23日下午14:00,武汉外语外事职业学院在藏龙岛校区食堂三楼报告厅隆重举行了2024年职业教育活动周优秀校外实习基地表彰仪式。本次活动旨在表彰在职业教育领域作出突出贡献的校外实习基地,同时加强校企合作,共同推动职业教育的发展。作为重…