2012-11-23 14 views
9

Mogłem zainstalować lokalnie gruntjs przy użyciu npm install grunt.Globalna instalacja pliku grunt.js kończy się niepowodzeniem.

Ale gdy próbuję go zainstalować globalnie npm install grunt -g, dostaję błąd:

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 

Z sudo mam błąd zbyt:

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 

Co mogę zrobić, aby zainstalować to?

P.S. Możliwe, że prawa dostępu do niektórych folderów są dla root:root, a nie dla mojego użytkownika. Bo nasi administratorzy zainstalowany VM tamtędy ...

+3

spróbuj ' npm cache clean' first. –

+1

Użyłem go. Co powinienem zrobić? – ValeriiVasin

+0

Wygląda na to, zależy to od typu instalacji węzła: lokalny lub globalny ... – ValeriiVasin

Odpowiedz

4

Spróbuj Chowning folder node_modules a następnie spróbuj ponownie zainstalować:

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

Ta metoda działała dla mnie, kiedy powiedziano mi, że 'sudo npm' nie jest komendą – iabw

3

spróbować sudo npm install -g grunt?

+0

Dzięki, pomogło to w moim przypadku – Andrija

10

miałem ten problem też z pomrukiem i altana

Rozwiązanie Znalazłem to w tym artykule NPM config

W swojej .npmrc trzeba ustawić ścieżkę prefiks

prefix = /usr/local 

lub można to zrobić z terminalu tak:

npm config set prefix "/usr/local" 

W ten sposób węzeł będzie wiedział, gdzie je zainstalować:

W KMP 1.0, istnieją dwa sposoby, aby zainstalować rzeczy:

globalnie - to Krople modułów {przedrostek}/lib/node_modules i umieszcza pliki wykonywalne w {prefix}/bin, gdzie {prefix} jest zwykle podobny do/usr/local. Instaluje także strony man w {prefix}/share/man, jeśli są dostarczane.

lokalnie - Spowoduje to zainstalowanie pakietu w bieżącym katalogu roboczym. Moduły węzłowe wchodzą w ./node_modules, pliki wykonywalne wchodzą w ./node_modules/.bin/, a strony podręcznika nie są w ogóle instalowane.

4

Wystąpił ten sam problem. Następujące roboty dla mnie:

sudo npm install -g grunt-cli 
3

dodanie opcji --no-bin-linki działa dobrze. Próbowałem wszystkiego i tylko to rozwiązało mój problem. Byłem instalowania Yeoman na Ubuntu 12.04 i było zawsze zwracając błąd:

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

Następnie zrobiłem:

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

= D

Więcej szczegółów https://github.com/isaacs/npm/issues/2380

Powiązane problemy