指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

nvm(Node Version Manager)使用:

1>官方介绍
https://github.com/nvm-sh/nvm
2>ubuntu22 安装nvm
//The script clones the nvm repository to ~/.nvm, 我这里指定的版本是v0.39.7,可以根据实际配置
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

默认上面的脚本执行完以后,会在 ~/.bashrc 里追加下面的内容

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

然后执行:
source ~/.bashrc

查看是否安装成功:
nvm --version
0.39.7
或者运行 command -v nvm
nvm
表示安装完成
参考:
https://blog.csdn.net/lxyoucan/article/details/130288356
https://github.com/nvm-sh/nvm //官网

3>使用,下面安装一个v18.xxx的版本,这里是 v18.19.0
nvm install lts/hydrogen (这里 hydrogen 只是v18版本的一个名称,这样会下载最新的v18版本)或者直接 nvm install 18.19.0,注意可能会有权限问题

nvm use 18.19.0

再切换会之前安装的 nvm use system

使用的过程中我发现,使用nvm use,只能临时有效。重新打开新的终端版本又变回原来的了
如果让设置永久生效呢? nvm alias default xx.xx.x

nvm alias default 18.19.0,当然切换回之前的版本也是 nvm alias default system

4>查看本地node安装的版本
nvm list

->       system
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
lts/* -> lts/iron (-> 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.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.19.0 (-> N/A)
lts/iron -> v20.10.0 (-> N/A)

注意上面展示了,通过nvm安装和自定义安装的node, 比如上面的 system, 其实就是我之前手动安装的 v19.3.0 版本

4>配合 .nvmrc 使用
我这直接在这个文件里面配置 lts/hydrogen // v18.xx版本

5>权限问题解决方案
在自行 nvm install 18.19.0的时候可能会报类似下面的错误
Downloading and installing node v19.4.0...
Downloading https://nodejs.org/dist/v19.4.0/node-v19.4.0-linux-x64.tar.xz...
Warning: Failed to open the file                                               
Warning: /home/wang/.nvm/.cache/bin/node-v19.4.0-linux-x64/node-v19.4.0-linux-x
Warning: 64.tar.xz: Permission denied
curl: (23) Failure writing output to destination

Binary download from https://nodejs.org/dist/v19.4.0/node-v19.4.0-linux-x64.tar.xz failed, trying source.
grep: /home/wang/.nvm/.cache/bin/node-v19.4.0-linux-x64/node-v19.4.0-linux-x64.tar.xz: 没有那个文件或目录
Provided file to checksum does not exist.
Binary download failed, trying source.
Downloading https://nodejs.org/dist/v19.4.0/node-v19.4.0.tar.xz...
Warning: Failed to open the file                                               
Warning: /home/wang/.nvm/.cache/src/node-v19.4.0/node-v19.4.0.tar.xz: 
Warning: Permission denied
curl: (23) Failure writing output to destination

Binary download from https://nodejs.org/dist/v19.4.0/node-v19.4.0.tar.xz failed, trying source.
grep: /home/wang/.nvm/.cache/src/node-v19.4.0/node-v19.4.0.tar.xz: 没有那个文件或目录
Provided file to checksum does not exist.
  
解决思路:
观察报错信息,发现下载安装包时就报错了,错误信息为 curl: (23) Failure writing output to destination
出现这个错误,首先想到我的 curl 是通过 snap 安装的,那么卸载使用apt重装试试,因为官方文档里有人一直在说这个snap,可以去看看,我开始也不知道为什么.

解决方案:
确认一下你的curl是不是用snap安装的:
sudo snap list | grep curl

有输出,则为snap安装,则卸载:
sudo snap remove curl

然后用apt重新安装:
sudo apt install curl

最后重新运行安装命令:
nvm install 18.19.0

执行完install 以后默认会自动把这个安装的版本设置为默认版本
  
https://blog.csdn.net/m0_63969219/article/details/128712231