NVM:使用 nvm 安装命令获取权限被拒绝

问题描述 投票:0回答:11

我最近全新安装了 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.
node.js linux nvm
11个回答
126
投票

issue 发布到 nvm 的存储库

原来问题出在

curl
上,而且我用
snap
安装它,而不是常规的
apt install curl


93
投票

卸载

curl
安装时使用
snap

sudo snap remove curl

curl
 安装 
apt

sudo apt install curl

10
投票

我也遇到了同样的问题(之前安装了 curlsnap)。卸载curl后nvm按预期工作。

$ sudo snap remove curl

9
投票

我也有同样的问题。这是由于缺少“libssl-dev”造成的。在开始 nvm 的安装过程之前运行以下命令

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


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

现在只需安装您想要的节点版本即可。

>nvm install v14.17.0

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

>nvm ls

要进行切换,只需输入以下命令。

>nvm use v12.X.XX

2
投票

它说

Permission denied
,请尝试使用
sudo

执行相同的命令

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


2
投票

我今天也遇到了完全相同的问题,我不确定这是否是 NVM 的问题,或者只是我的 Linux 安装有问题,但我已经通过手动下载 tar 文件暂时解决了这个问题对于要安装的节点版本,将其移至 nvm 的缓存,然后再次运行 nvm install。我将在下面留下确切的步骤,如果我弄清楚为什么curl不想在.nvm目录中创建文件,我会尝试记住回来更新这个问题

我已经尝试了我能想到的一切尝试允许curl保存到nvm目录,使用sudo安装nvm,chown目录,为用户组和目录添加完整的rwx权限,手动安装nvm,没有任何效果对我来说,目前我最好的解决方案如下:)

解决修复问题(以node 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)

0
投票

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


0
投票

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

  1. 创建文件夹

    mkdir ~/.nvm

  2. 授予许可例如:

    sudo chmod 777 ~/.nvm

注意:就我而言,我通过了这些步骤,但在使用 nvm 安装节点版本时遇到了另一个权限错误,并使用以下命令解决了该问题:

sudo chmod 777 /private/tmp


0
投票

我使用的是 Windows 计算机 (Windows 10),并且使用 Git Bash(我意识到这不受支持 - 见下文)。

我尝试时遇到“权限被拒绝”错误

nvm install --lts

被拒绝的权限与此文件夹相关:

C:\Users\{my_user}\AppData\Local\Microsoft\WindowsApps\python3

我不知道该文件/文件夹出了什么问题;

python3.exe
等都是0字节。所以我删除了 WindowsApps ,并且克服了这个
Permission denied
错误

要小心,不确定这是否适合您,我只是假设

\AppData\Local
是缓存数据——可以毫无问题地删除


克服权限被拒绝错误后,但我收到了一个新错误,例如

Did not find a new enough assembler

我能够通过运行命令来修复此与汇编程序相关的错误:

cd "$NVM_DIR" && git checkout master
,如此处

所述

-1
投票

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

查看相关文档这里

© www.soinside.com 2019 - 2024. All rights reserved.