NVM:使用nvm install命令时遇到权限被拒绝的问题

56

我最近全新安装了Ubuntu 21.04,并想要安装nvm:

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

然后关闭并重新打开终端。当请求安装版本 12.16.3 (也尝试过其他版本)时,我收到以下错误:

nvm install 12.16.3
Downloading and installing node v12.16.3...
Downloading https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz...
Warning: Failed to create the file 
Warning: /home/sauronnikko/.nvm/.cache/bin/node-v12.16.3-linux-x64/node-v12.16.
Warning: 3-linux-x64.tar.xz: Permission denied
curl: (23) Failure writing output to destination

Binary download from https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz failed, trying source.
grep: /home/sauronnikko/.nvm/.cache/bin/node-v12.16.3-linux-x64/node-v12.16.3-linux-x64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Downloading https://nodejs.org/dist/v12.16.3/node-v12.16.3.tar.xz...
Warning: Failed to create the file 
Warning: /home/sauronnikko/.nvm/.cache/src/node-v12.16.3/node-v12.16.3.tar.xz: 
Warning: Permission denied
curl: (23) Failure writing output to destination

Binary download from https://nodejs.org/dist/v12.16.3/node-v12.16.3.tar.xz failed, trying source.
grep: /home/sauronnikko/.nvm/.cache/src/node-v12.16.3/node-v12.16.3.tar.xz: No such file or directory
Provided file to checksum does not exist.
10个回答

122

在nvm的仓库中发布了一个问题

结果发现问题出在curl上,原来我是用snap安装的curl而不是常规的apt install curl


1
这个解决了我的问题,就像我在另一个答案中提到的那样。 - NMukama

90

卸载使用 snap 安装的 curl

sudo snap remove curl

apt安装curl

sudo apt install curl

9

我曾经遇到过相同的问题,那是因为缺少了 "libssl-dev"。在开始安装 nvm 过程前,请运行以下命令:

sudo apt-get install build-essential libssl-dev curl git-core


重新安装 curl 解决了我的问题。谢谢。 - Aqeeb Imtiaz Harun

9

我遇到了相同的问题(之前使用snap安装了curl)。在卸载curl后,nvm可以正常工作。

$ sudo snap remove curl

2
请注意:在删除curl后不要忘记重新启动终端。 - Sadha Nanda
1
在我的情况下,我只是从snap中卸载了curl,并通过apt进行了安装,按顺序进行,而不需要重新启动终端,我可以重复执行nvm install --lts,并且它可以完美地工作。 - Marcelo Scofano Diniz

5

这个方法有效

简单来说,我做了这个方法,它有效...

>snap list
>sudo snap remove curl

这将会删除通过snap安装的curl。我们需要使用apt来安装。

>sudo apt-get install curl

现在我们需要使用curl安装nvm。
>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

现在只需安装您想要的Node版本即可。
>nvm install v14.17.0

为了列出所有的nvm版本,只需要这样做。
>nvm ls

为了切换,只需键入以下命令。
>nvm use v12.X.XX

1
今天我也遇到了完全相同的问题,我不确定这是NVM的问题还是我的Linux安装出了问题,但我已经通过手动下载要安装的节点版本的tar文件,将其移动到nvm的缓存中,然后再次运行nvm install来解决它。我将在下面留下确切的步骤,并尽力回来更新这个问题,如果我弄清楚为什么curl不想在.nvm目录中创建文件。

我已经尝试了我能想到的一切方法来允许curl保存到nvm目录,使用sudo安装nvm,chown该目录,为用户组和其他人添加完整的rwx权限,手动安装nvm,但对我来说都没有用,所以目前我最好的解决方案如下:

解决方法(以v16.1.0节点为例):

1- 运行curl命令将你想要的节点版本下载到你的主目录中

curl https://nodejs.org/dist/v16.1.0/node-v16.1.0-linux-x64.tar.xz --output node-v16.1.0-linux-x64.tar.xz

2 - 将文件复制到nvm缓存中

sudo mv node-v16.1.0-linux-x64.tar.xz ~/.nvm/.cache/bin/node-v16.1.0-linux-x64/node-v16.1.0-linux-x64.tar.xz

3 - 再次运行 nvm install

nvm install node (or whatever version you are trying to install)

1

它显示Permission denied,请尝试使用sudo执行相同的命令

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


0

您可以尝试创建文件夹并赋予写入权限:

  1. 创建文件夹 mkdir ~/.nvm

  2. 赋予权限,例如: sudo chmod 777 ~/.nvm

注意:在我的情况下,我完成了这些步骤,但在使用nvm安装节点版本时遇到了另一个权限错误,并通过使用以下命令解决了它: sudo chmod 777 /private/tmp


0

请检查您的NVM_DIR环境变量,我的在从旧机器转移后设置不正确。


-1

对我来说问题不同,解决方法是为GitHub创建SSH密钥并将其添加到我的个人资料中。

请参阅相关文档此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接