无法在AWS EC2上安装KeystoneJS - 错误输出

时间:2015-08-24 01:54:18

标签: node.js mongodb amazon-web-services amazon-ec2 keystonejs

我有一个成功安装了node和mongo的EC2实例(我已经测试了两个)。我现在正在尝试安装KeystoneJS,但它正在抛出错误。不太确定我在哪里出错了。一切都在本地工作正常,我假设它与我的EC2配置有关。

npm install -g generator-keystone

结果

npm ERR! tar.unpack untar error /home/ec2-user/.npm/generator-keystone/0.3.7/package.tgz
npm ERR! Linux 3.14.35-28.38.amzn1.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "generator-keystone"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! path /usr/local/lib/node_modules/generator-keystone
npm ERR! code EACCES
npm ERR! errno -13

npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/generator-keystone'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/generator-keystone']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/generator-keystone',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/generator-keystone',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:95:15)' ] }
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/ec2-user/npm-debug.log

sudo npm install -g generator-keystone

结果

sudo: npm: command not found

1 个答案:

答案 0 :(得分:1)

如果在Linux中使用sudo时命令不可用,那通常是因为命令没有被添加到' sudo路径'。你可以在这里看到解决这个问题的另一个问题:

https://askubuntu.com/questions/611528/why-cant-sudo-find-a-command-after-i-added-it-to-path

我假设您为您使用了Ubuntu或Amazon Linux映像EC2实例(您将来应该在问题中指定,因为这样的错误可以通过不同的方式解决,具体取决于操作系统 - 特别是当涉及到PATH时变量可能是这里的问题)。

我给出的上述答案是如何在Ubuntu上进行,而我不知道亚马逊图像中是否有可用的便利命令(sudo visudo)。

另外作为附注,我强烈建议您在编写依赖于Node.js的任何内容时,研究如何使用NVM作为一般做法。它允许您在一台计算机上安装多个版本的节点,并相应地调整您的路径,以允许您在每个终端(bash)实例中切换正在使用的路径。

(这也使部署更容易IMO)。

https://github.com/creationix/nvm

祝你好运!