使用 npm 安装 Ganache 后权限被拒绝

Permission denied after installing Ganache with npm

我正在使用 ubuntu 并通过 nvm 安装了 node

nvm --version   
0.39.1
nvm list 

       v16.13.2
->      v17.4.0
default -> v16.13.2 (-> N/A)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v17.4.0) (default)
stable -> 17.4 (-> v17.4.0) (default)
lts/* -> lts/gallium (-> 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.9 (-> N/A)
lts/fermium -> v14.18.3 (-> N/A)
lts/gallium -> v16.13.2 (-> N/A)
  
npm --version  
8.3.2

我有 $NVM_DIR 配置:

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 load>

export PATH="$PATH:/home/helio/.nvm/versions/node/v17.4.0/bin"

我安装了 Ganache:
npm install --global ganache
它位于:
.nvm/versions/node/v17.4.0/bin/ganache

但是当我 运行 例如:
ganache --port 8545 --gasLimit 12000000 --accounts 10 --hardfork istanbul --mnemonic brownie
我得到:
bash: /home/helio/.nvm/versions/node/v17.4.0/bin/ganache: Permission denied

当我查找此错误时,解决方案总是最终通过 nvm 安装 node,因此所有内容都将在 .nvm.

下进行

有人可以帮助我了解我缺少什么吗?

看起来您以前曾使用 sudo 全局安装过某些东西。您可能不应该将 sudonpmyarn.

一起使用

我知道这听起来很极端,但是如果您使用 sudo 来安装 npm 包并且不理解这样做的后果(它允许包作者或任何作者软件包依赖于对您的系统执行任何他们想做的任何事情的依赖项;如果他们愿意,他们可以安装后门甚至更新您的 bios)。您可能需要考虑格式化您的硬盘驱动器、重置您的 BIOS 并重新安装您的操作系统(如果您已经养成了这样做的习惯)。

sudo 与全局标志 (-g) 一起使用也会更改您的 npm 文件夹的权限,这会导致您在上面看到的问题。如果你不想按照我的建议重置你的系统,npm 有一篇关于如何尝试修复 npm 权限的文章:https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally .