ganache-cli 的 npm 全局安装失败(因为 sudo/permissions)
npm global install of ganache-cli fails (because of 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
link 的软件包全局安装到 /usr/local/
下的目录中,这些目录通常由 root 用户拥有。
Node Version Manager (nvm) 是规避此类棘手权限问题的一种方法。它允许全局安装的包 linked 到您的主文件夹中 ~/.nvm/versions/node/<version>
下的目录中
使用我的包管理器,我删除了 node
和相关软件,例如 npm
。
我使用 find /usr/local/ -name 'node_modules'
搜索 /usr/local/
以查找我之前使用 npm
全局安装的软件包的任何痕迹。全部删除。
然后我使用来自 https://github.com/creationix/nvm
的最新安装脚本安装了 nvm
在我的例子中是
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
然后我不得不 link nvm
进入我的环境路径。
就我而言,这意味着手动编辑我的 .bashrc
个人资料以包含以下内容:
export NVM_DIR="/home/zack/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
从那里,我准备通过 nvm
获取最新的 LTS 版本的节点
nvm install --lts
现在可以在没有 sudo
的情况下安装全局安装的软件包,因为它们存放在 ~/.nvm/versions/node/v10.14.2/
下并且一切正常!
我有 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
link 的软件包全局安装到 /usr/local/
下的目录中,这些目录通常由 root 用户拥有。
Node Version Manager (nvm) 是规避此类棘手权限问题的一种方法。它允许全局安装的包 linked 到您的主文件夹中 ~/.nvm/versions/node/<version>
使用我的包管理器,我删除了 node
和相关软件,例如 npm
。
我使用 find /usr/local/ -name 'node_modules'
搜索 /usr/local/
以查找我之前使用 npm
全局安装的软件包的任何痕迹。全部删除。
然后我使用来自 https://github.com/creationix/nvm
的最新安装脚本安装了nvm
在我的例子中是
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
然后我不得不 link nvm
进入我的环境路径。
就我而言,这意味着手动编辑我的 .bashrc
个人资料以包含以下内容:
export NVM_DIR="/home/zack/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
从那里,我准备通过 nvm
获取最新的 LTS 版本的节点nvm install --lts
现在可以在没有 sudo
的情况下安装全局安装的软件包,因为它们存放在 ~/.nvm/versions/node/v10.14.2/
下并且一切正常!