2012-11-23 6 views
9

Ich könnte gruntjs lokal mit npm install grunt installieren.Die globale Installation von grunt.js schlägt fehl

Aber wenn ich versuche, es global npm install grunt -g zu installieren, ich bin erhalte eine Fehlermeldung:

npm ERR! Error: EACCES, symlink '../lib/node_modules/grunt/bin/grunt' 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen 
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g" 
npm ERR! cwd /home/lj 
npm ERR! node -v v0.6.18 
npm ERR! npm -v 1.1.19 
npm ERR! path ../lib/node_modules/grunt/bin/grunt 
npm ERR! code EACCES 
npm ERR! message EACCES, symlink '../lib/node_modules/grunt/bin/grunt' 
npm ERR! errno {} 

npm ERR! Error: EACCES, open 'npm-debug.log' 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen 
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g" 
npm ERR! cwd /home/lj 
npm ERR! node -v v0.6.18 
npm ERR! npm -v 1.1.19 
npm ERR! path npm-debug.log 
npm ERR! code EACCES 
npm ERR! message EACCES, open 'npm-debug.log' 
npm ERR! errno {} 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/lj/npm-debug.log 
npm not ok 

Mit sudo habe ich Fehler zu:

npm ERR! Error: spawn ENOENT 
npm ERR!  at errnoException (child_process.js:483:11) 
npm ERR!  at ChildProcess.spawn (child_process.js:446:11) 
npm ERR!  at child_process.js:342:9 
npm ERR!  at Object.execFile (child_process.js:252:15) 
npm ERR!  at uidNumber (/usr/lib/nodejs/uid-number/uid-number.js:33:17) 
npm ERR!  at loadUid (/usr/lib/nodejs/npm/lib/npm.js:336:5) 
npm ERR!  at Array.2 (/usr/lib/nodejs/bind-actor.js:15:8) 
npm ERR!  at LOOP (/usr/lib/nodejs/chain.js:15:13) 
npm ERR!  at /usr/lib/nodejs/chain.js:18:7 
npm ERR!  at setUser (/usr/lib/nodejs/npm/lib/npm.js:346:32) 
npm ERR! You may report this log at: 
npm ERR!  <http://github.com/isaacs/npm/issues> 
npm ERR! or email it to: 
npm ERR!  <[email protected]> 
npm ERR! 
npm ERR! System Linux 2.6.18-92.el5xen 
npm ERR! command "nodejs" "/usr/bin/npm" "install" "grunt" "-g" 
npm ERR! cwd /home/lj 
npm ERR! node -v v0.6.18 
npm ERR! npm -v 1.1.19 
npm ERR! syscall spawn 
npm ERR! code ENOENT 
npm ERR! message spawn ENOENT 
npm ERR! errno {} 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/lj/npm-debug.log 
npm not ok 

Was könnte ich tun installieren es?

P.S. Es ist möglich, dass die Zugriffsrechte für einige Ordner für root:root sind, nicht für meinen Benutzer. Cuz unsere Admins VM auf diese Weise installiert ...

+3

Try ' npm cache clean zuerst. –

+1

Ich habe es benutzt. Was soll ich machen? – ValeriiVasin

+0

Scheint wie es hängt von Knoten Installationstyp: lokale oder globale ... – ValeriiVasin

Antwort

4

Versuchen Sie, den node_modules Ordner Chownings und dann erneut zu installieren versuchen:

sudo chown -R $USER /path/to/node_modules/folder 
+0

Diese Methode funktionierte für mich, als mir gesagt wurde, sudo npm' war kein Befehl – iabw

3

sudo npm install -g grunt versuchen?

+0

Danke, das half in meinem Fall – Andrija

10

ich dieses Problem hatte auch mit Grunzen und Bower

Die Lösung, die ich gefunden habe, ist in diesem Artikel NPM config

In Ihrem .npmrc Sie den Präfix Pfad festlegen müssen

prefix = /usr/local 

oder Sie können es von Terminal wie folgt tun:

npm config set prefix "/usr/local" 

Auf diese Weise Knoten wissen, wo sie installieren:

In npm 1.0 gibt es zwei Möglichkeiten, Dinge zu installieren:

global - Dieser fällt Module in {prefix}/lib/node_modules und legt ausführbare Dateien in {Präfix}/bin, wobei {Präfix} normalerweise etwas wie/usr/local ist. Es werden auch Manpages in {Präfix}/share/man installiert, sofern diese bereitgestellt werden.

lokal - Dies installiert Ihr Paket im aktuellen Arbeitsverzeichnis. Knotenmodule gehen in ./node_modules, ausführbare Dateien in ./node_modules/.bin/, und man-Seiten werden überhaupt nicht installiert.

4

Das gleiche Problem. Die folgenden Werke für mich:

sudo npm install -g grunt-cli 
3

die Option --no-bin-Links Hinzufügen gut funktioniert. Ich habe alles versucht und nur das hat mein Problem gelöst. Ich war die Yeoman auf Ubuntu 12.04 Installation und es wurde immer wiederkehr den Fehler:

npm ERR! Error: EACCES, symlink '../lib/node_modules/yo/cli.js' 

Dann tat ich:

npm install -g --no-bin-links yo 

= D

Weitere Details https://github.com/isaacs/npm/issues/2380