2013-03-26 86 views
35

,所以我没注意跑这个命令 -NPM不再工作

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 [email protected] { [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 

发生了什么事?

+0

您是如何在您的机器上安装节点的? – user568109 2013-03-26 10:57:28

+0

我建议不要以root/administrator身份安装npm软件包。看到这里的另一种方法:https://coderwall.com/p/6aumug/howto-npm-global-install-without-root-privileges – 2017-02-20 00:50:57

回答

30

没有尝试过自己运行此。

您将需要再次安装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 

编辑23/01/2014:

现在NPM带有自身的NodeJS,所以才重新安装NodeJs

+2

啊,是的,因为我的unixfoo很弱,我一直在做'sudo curl://npmjs.org/install.sh | sh'已经出错了。我没有意识到管道需要另一层'sudo'!由于 – Michael 2013-05-28 01:47:41

+0

@迈克尔属于这一陷阱自己太;) – asgoth 2013-05-28 07:50:29

+0

烨...重新安装的的NodeJS没有的伎俩......感谢 – beauXjames 2014-04-22 01:45:13

10

查看错误

Please try running this command again as root/Administrator. 

您需要与sudo

$ sudo npm install jasmine-node -g 
+0

这不是第二个错误的原因! – asgoth 2013-03-26 09:09:07

+0

呃这样做给我sudo:npm:命令未找到 – praks5432 2013-03-26 09:14:04

+0

@ praks5432'sudo'找不到?好吧,我很抱歉,但这是我可以给你的所有帮助......我不知道该怎么办。 – romainberger 2013-03-26 09:18:08

115

运行npm install -g somepackage时,可能会收到EACCES错误,要求您以root用户身份重新运行该命令。这是一个权限问题。

容易修复,打开终端(应用程序>工具>终端)

sudo chown -R $USER /usr/local 

**我强烈建议你不要使用sudo使用包管理(NPM须藤-g安装的东西) ,因为你可以在以后得到一些问题,**

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

** **更新

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

当你安装全球更好的解决方案:

sudo chown -R `whoami` ~/.npm 
+0

非常感谢你! – bobmoff 2014-01-30 22:01:30

+6

我了解单独用户对root访问有用的用法。我仍然不会推荐做“sudo chown -R $ USER/usr/local”。 正如你在这里试图做的是允许$ USER中的/ usr/local中的所有内容。我不希望特定的$ USER拥有所有权限。 该解决方案应该是在/ usr/local或任何位置找到确切的文件夹,并给出只有$ USER才能使用的权限。这也非常容易被误用。 我更喜欢的另一个解决方案是对单独用户使用“某些额外”权限“chmod”确切包。 – 2014-02-12 10:22:29

+2

运行后,我得到'命令没有找到:npm' – pruett 2014-04-05 16:08:51

6

这为我工作(OSX)。我必须在我的用户目录中运行它。

cd ~

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

0

我能够通过设置我的包来解决权限问题有一个行 “$ HOME/.npmrc” 文件在本地安装:

PREFIX = $ {HOME} /。npm_packages