npm全局安装ganache-cli失败(由于sudo / permissions)

时间:2018-12-12 21:10:04

标签: node.js npm npm-install ganache

我有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

1 个答案:

答案 0 :(得分:1)

基本问题是,使用docker ps --format "{{.Names}}: {{.Status}}" | sort -k1 | awk '{sub(/\.[^.]*$/,"",$1)}1' | column -t; mon_grafana.1 Up 24 hours mon_node-exporter.fmbi1a5nn9sp5o4qy3eyazeq5 Up 23 hours 全局安装软件包会将它们链接到npm下的目录中,这些目录通常由root用户拥有。

Node Version Manager (nvm)是避免此类棘手的权限问题的一种方法。它允许将全局安装的软件包链接到您的主文件夹中/usr/local/

下的目录中

使用包裹管理器,我删除了~/.nvm/versions/node/<version>和相关软件,例如node

我用npm来搜索find /usr/local/ -name 'node_modules',以查找以前用/usr/local/全局安装的软件包的所有痕迹。全部删除。

然后我使用来自https://github.com/creationix/nvm的最新安装脚本安装了npm

在我的情况下是

nvm

然后我必须将curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 链接到我的环境路径中。 就我而言,这意味着手动编辑我的nvm个人资料以包括以下内容:

.bashrc

从那里,我准备通过nvm获取最新的LTS版本的节点

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

现在,无需安装nvm install --lts 即可安装全局安装的软件包,因为它们存放在sudo下,并且一切正常!