【发布时间】:2018-02-01 01:34:22
【问题描述】:
根据https://hyperledger.github.io/composer/installing/development-tools.html,我在 Ubuntu 系统上本地安装超级账本作曲家时遇到了困难。我想我已经满足了所有的要求:
ibmadmin@pfuntner1:~/hyperledger-composer$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.2 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
ibmadmin@pfuntner1:~/hyperledger-composer$ docker --version
Docker version 17.03.1-ce, build c6d412e
ibmadmin@pfuntner1:~/hyperledger-composer$ docker-compose --version
docker-compose version 1.13.0, build 1719ceb
ibmadmin@pfuntner1:~/hyperledger-composer$ node --version
v6.10.3
ibmadmin@pfuntner1:~/hyperledger-composer$ npm --version
3.10.10
ibmadmin@pfuntner1:~/hyperledger-composer$ git --version
git version 2.7.4
ibmadmin@pfuntner1:~/hyperledger-composer$ python --version
Python 2.7.12
ibmadmin@pfuntner1:~/hyperledger-composer$ code --version
1.15.1
41abd21afdf7424c89319ee7cb0445cc6f376959
ibmadmin@pfuntner1:~/hyperledger-composer$
当然,说明确实说我需要git 2.9.x 或更高版本,而我只有git 2.7.4,但我不确定这会导致问题或我看到的具体问题。当我尝试安装 composer-cli 时,我得到:
ibmadmin@pfuntner1:~/hyperledger-composer$ npm install -g composer-cli
npm WARN deprecated fs-promise@1.0.0: Use mz or fs-extra^3.0 with Promise Support
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm WARN deprecated crypto@0.0.3: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
npm WARN deprecated nodemailer@2.7.2: All versions below 4.0.1 of Nodemailer are deprecated. See https://nodemailer.com/status/
npm WARN checkPermissions Missing write access to /usr/lib/node_modules
/usr/lib
+-- composer-cli@0.11.3
+-- chalk@1.1.3
.
.
.
+-- yargs-parser@7.0.0
+-- camelcase@4.1.0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/composer-cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! Linux 4.4.0-91-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "composer-cli"
npm ERR! node v6.10.3
npm ERR! npm v3.10.10
npm ERR! path /usr/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR! at Error (native)
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /home/ibmadmin/hyperledger-composer/npm-debug.log
ibmadmin@pfuntner1:~/hyperledger-composer$
我删除了大部分 npm install 输出,因为我认为它不相关而且很长。
按照说明,我没有以 root 身份运行,我没有安装想要访问/usr/lib/node_modules 之类的路径的权限并不感到惊讶。我从一个空目录运行,并且唯一创建为npm-debug.log 的东西。我该怎么办?
【问题讨论】:
-
虽然您没有运行 root,但您已经以 root 身份安装了节点(可能是通过执行 sudo apt-get install node ?),所以它被安装到只有 root 具有写入权限的目录中,所以您除非您是 root 或重新配置 npm 以解决此问题,否则无法全局安装 npm 模块。您基本上需要确保以您的正常 ID 安装节点,我建议使用 nvm 来执行此操作,因为它使整个过程变得容易。