【问题标题】:Permission denied after installing Ganache with npm使用 npm 安装 Ganache 后权限被拒绝
【发布时间】:2022-02-01 02:25:33
【问题描述】:

我正在使用 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 下进行。

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

【问题讨论】:

    标签: node.js ubuntu npm nvm ganache


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的意见。我很确定我没有使用 sudo 安装任何软件包,但我会重新安装所有内容以确保并在我的问题中说明我没有使用它。
    • 哦,还有……除非你有理由这样做,否则你不应该使用 Node 17,如果你不知道你是否有理由这样做,那么你可能不会有理由(奇数的主要 Node.js 版本,如 13、15、17...有点像 Node.js 的 beta 版本)
    • 所以,我卸载了 ganache,然后我按照您的建议安装了节点的 LTS 版本 (16.13.2) 并在不使用 sudo 的情况下在全球范围内重新安装了 Ganache,现在一切正常。也许我过去使用过sudo,或者我使用的节点版本(17.4.0)有问题。无论如何,感谢您的帮助! Ganache 做得很好!
    • 很高兴听到!在 StackOverflow 上,如果答案回答了您的问题,则应将其标记为已接受。
    猜你喜欢
    • 2019-01-28
    • 2019-10-18
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2019-11-16
    • 2018-01-19
    相关资源
    最近更新 更多