ganache-cli的npm全局安装失败(因为sudo/permissions)



我有npm版本6.5.0和节点v10.10.0。npm全局安装以前没有任何问题。

sudo npm install --global ganache-cli
npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b master https://github.com/ethereumjs/ethereumjs-abi.git /root/.npm/_cacache/tmp/git-clone-305900d8
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-305900d8': Permission denied
npm ERR!     
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-12-12T20_49_21_325Z-debug.log

基本问题是全局安装带有npm的包会将它们链接到/usr/local/下的目录中,这些目录通常由根用户所有。

节点版本管理器(nvm(是规避此类棘手权限问题的一种方法。它允许全局安装的软件包链接到~/.nvm/versions/node/<version>下主文件夹中的目录中

使用包管理器,我删除了node和相关软件,如npm

我使用find /usr/local/ -name 'node_modules'/usr/local/中搜索以前使用npm全局安装的软件包的任何痕迹。全部删除。

然后,我使用中的最新安装脚本安装了nvmhttps://github.com/creationix/nvm

就我而言,是

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

然后我必须将nvm链接到我的环境路径中。在我的情况下,这意味着手动编辑我的.bashrc配置文件以包括以下内容:

export NVM_DIR="/home/zack/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

从那里,我准备通过nvm 获得node的最新LTS版本

nvm install --lts

现在,全局安装的软件包可以在没有sudo的情况下安装,因为它们存放在~/.nvm/versions/node/v10.14.2/下,一切都很完美!

相关内容

最新更新