Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Global installation of grunt.js fails

I could install gruntjs locally using npm install grunt.

But when I'm trying to install it globally npm install grunt -g, i'm getting an error:

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

With sudo I have error too:

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

What could I do to install it?

P.S. It's possible that come rights for some folders is for root:root, not for my user. Cuz our admins installed VM that way...

like image 461
ValeriiVasin Avatar asked Nov 23 '12 11:11

ValeriiVasin


People also ask

Why npm install is failing?

This cause of this error is that one of the dependencies you define in your package. json file fails to be installed properly on your computer. This means that npm fails to install the node-sass module that's added as a dependency to the n-app project.

Is grunt deprecated?

grunt. util. _ is deprecated and we highly encourage you to npm install lodash and var _ = require('lodash') to use lodash .

How do I install global node JS?

Step 1: Download Node.js Installer In a web browser, navigate to https://nodejs.org/en/download/. Click the Windows Installer button to download the latest default version. At the time this article was written, version 10.16.0-x64 was the latest version. The Node.js installer includes the NPM package manager.


5 Answers

I've had this problem too with grunt and bower

The solution I've found is in this article NPM config

In your .npmrc you need to set the prefix path

prefix = /usr/local

or you can do it from terminal like this:

npm config set prefix "/usr/local"

This way node will know where to install them:

In npm 1.0, there are two ways to install things:

globally —- This drops modules in {prefix}/lib/node_modules, and puts executable files in {prefix}/bin, where {prefix} is usually something like /usr/local. It also installs man pages in {prefix}/share/man, if they’re supplied.

locally —- This installs your package in the current working directory. Node modules go in ./node_modules, executables go in ./node_modules/.bin/, and man pages aren’t installed at all.

like image 72
Joe Avatar answered Oct 22 '22 15:10

Joe


Try chowning the node_modules folder and then try to install again:

sudo chown -R $USER /path/to/node_modules/folder
like image 28
Sindre Sorhus Avatar answered Oct 22 '22 13:10

Sindre Sorhus


Encountered same issue. The following works for me:

sudo npm install -g grunt-cli
like image 34
Raja Ramu Avatar answered Oct 22 '22 13:10

Raja Ramu


try sudo npm install -g grunt ?

like image 36
Sayanee Avatar answered Oct 22 '22 13:10

Sayanee


Adding the option --no-bin-links works good. I tried everything and only this solved my problem. I was installing the Yeoman on ubuntu 12.04 and it was always returning the error:

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

Then, I did:

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

=D

For more details https://github.com/isaacs/npm/issues/2380

like image 43
Wellington Lorindo Avatar answered Oct 22 '22 15:10

Wellington Lorindo