我有一个成功安装了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
答案 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)。
祝你好运!