【问题标题】:NPM no longer workingNPM 不再工作
【发布时间】:2013-03-16 00:14:16
【问题描述】:

所以我没有注意并运行了这个命令-

npm install npm install jasmine-node -g

导致这个 -

    npm http GET https://registry.npmjs.org/install
npm http GET https://registry.npmjs.org/jasmine-node
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/install
npm http GET https://registry.npmjs.org/install/-/install-0.1.7.tgz
npm http 200 https://registry.npmjs.org/install/-/install-0.1.7.tgz
npm http 200 https://registry.npmjs.org/jasmine-node
npm http GET https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.4.0.tgz
npm http 200 https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.4.0.tgz
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-1.2.15.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-1.2.15.tgz
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/install'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/install']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/install',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/install',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR!      'Object.oncomplete (fs.js:297:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "npm" "install" "jasmine-node" "-g"
npm ERR! cwd /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn
npm ERR! node -v v0.8.17
npm ERR! npm -v 1.2.0
npm ERR! path /usr/local/lib/node_modules/install
npm ERR! fstream_path /usr/local/lib/node_modules/install
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/install'
npm ERR! fstream_stack DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/jasmine-node',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/jasmine-node',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR!      'Object.oncomplete (fs.js:297:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "npm" "install" "jasmine-node" "-g"
npm ERR! cwd /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn
npm ERR! node -v v0.8.17
npm ERR! npm -v 1.2.0
npm ERR! path /usr/local/lib/node_modules/jasmine-node
npm ERR! fstream_path /usr/local/lib/node_modules/jasmine-node
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node'
npm ERR! fstream_stack DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back  npm@1.2.15 { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/npm' }
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/npm' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "npm" "install" "jasmine-node" "-g"
npm ERR! cwd /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn
npm ERR! node -v v0.8.17
npm ERR! npm -v 1.2.0
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/psanker/Google Drive/Coding/Javascript/WhatsGoingOn/npm-debug.log
npm ERR! not ok code 0

现在当我尝试运行时

npm install jasmine-node -g

我明白了

-bash: /usr/local/bin/npm: No such file or directory

发生了什么事?

【问题讨论】:

  • 你是如何在你的机器上安装节点的?
  • 我建议不要以 root/administrator 身份安装 npm 包。另一种方式请参见此处:coderwall.com/p/6aumug/…

标签: javascript node.js command-line npm jasmine


【解决方案1】:

查看错误

Please try running this command again as root/Administrator.

您需要使用sudo 运行它

$ sudo npm install jasmine-node -g

【讨论】:

  • @praks5432 sudo 未找到?好吧,很抱歉,我能给你的帮助就这么多了……我不知道在这种情况下该怎么办。
  • 这个提示帮助我安装了 Windows 环境。安装卡在第二个“GET”命令中,没有任何错误消息...
  • @romainberger 以 root 身份使用 npm 不是一个好主意,这会在以后给您带来问题
  • 未找到错误是由于 npm 仅对您的用户可用,而对 root 不可用。按照评分最高的答案去做,只需修复您的权限sudo chown -R $USER /usr/local - 超级简单。
【解决方案2】:

自己试过了。

您需要再次安装npm。如果你使用git,这是最简单的方法:

git clone http://github.com/isaacs/npm.git
cd npm
sudo make install

否则,还有一个安装脚本:

curl http://npmjs.org/install.sh | sh

(您可能需要使用sudo sh 而不是sh)。

然后再次安装你的模块:

sudo npm install jasmine-node -g

2014 年 1 月 23 日编辑:

现在 npm 自带 NodeJs,所以只需重新安装 NodeJs

【讨论】:

  • 啊,是的,因为我的 unixfoo 很弱,我一直在做sudo curl://npmjs.org/install.sh | sh,它一直在出错。我没有意识到管道需要另一层sudo!谢谢
  • @Michael 我自己也陷入了这个陷阱;)
【解决方案3】:

当您运行 npm install -g somepackage 时,您可能会收到 EACCES 错误,要求您以 root/管理员身份再次运行该命令。这是权限问题。

很容易修复,打开您的终端(应用程序 > 实用程序 > 终端)

sudo chown -R $USER /usr/local

** 我强烈建议你不要使用 sudo 进行包管理(sudo npm -g install something),因为以后可能会遇到一些问题**

参考:http://foohack.com/2010/08/intro-to-npm/

** 更新**

原因是因为这可能会导致许多其他应用程序出现权限问题,所以我建议不要这样做。

全局安装时更好的解决方案:

sudo chown -R `whoami` ~/.npm

【讨论】:

  • 我了解使用单独的用户有利于防止 root 访问。我仍然不建议执行“sudo chown -R $USER /usr/local”。在这里,您尝试做的是允许 $USER 使用 /usr/local 中的所有内容。我不希望那个特定的 $USER 拥有所有权限。解决方案应该只是在 /usr/local 或任何位置找到确切的文件夹,并仅授予 $USER 使用的权利。这也非常容易被滥用。我更喜欢的另一个解决方案是为单独的用户“chmod”具有一些额外权限的确切包。
  • 我执行了这个命令,但将其限定为 node_modules 目录。 /usr/local/lib/node_modules 效果很好。
  • @pruett 你可以使用这个gist安装节点
  • 以 root 身份为我工作:chown -R jenkins /opt/nodechgrp -R jenkins /opt/node
【解决方案4】:

这对我有用 (OSX)。我必须在我的用户目录中运行它。

cd ~

curl -L http://npmjs.org/install.sh | sudo sh

【讨论】:

    【解决方案5】:

    通过将我的包设置为使用单行“$HOME/.npmrc”文件在本地安装,我能够解决权限问题:

    前缀=${HOME}/.npm_packages

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 2012-04-11
      • 2018-06-01
      • 2016-11-10
      相关资源
      最近更新 更多