我正在使用ubuntu,并通过nvm安装节点。
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"
我用:npm install --global ganache
安装了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
在全局范围内安装一些东西。您可能不应该将sudo
与npm
或yarn
一起使用。
我知道这听起来很极端,但如果你使用sudo
来安装npm包,但不了解这样做的后果(它允许包作者或包所依赖的依赖项的任何作者对你的系统做任何他们想要的事情;如果他们愿意,他们可以安装后门,甚至更新你的bios(。如果你已经养成了格式化硬盘、重置bios和重新安装操作系统的习惯,你可能需要考虑格式化硬盘、重新安装bios。
将sudo
与全局标志(-g
(一起使用也会更改npm文件夹的权限,这会导致如上所述的问题。如果你不想按照我的建议重置你的系统,npm有一篇关于如何修复npm权限的文章:https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally。