user10378098
user10378098

Reputation:

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

Note: Due to security concerns, please don't use the marked solution but instead the highest voted one!


original question:

I am trying to install monaca with this command.

npm install -g monaca

But right after getting these errors:

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules 
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR!   errno: -13, npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }

Any idea how to solve this problem? Thank you

Upvotes: 49

Views: 58882

Answers (7)

kissu
kissu

Reputation: 46761

To all the warnings telling not to use sudo above, I'd add the following solution that worked pretty well for me while installing n, node version manager

sudo chown -R $USER /usr/local/lib/node_modules

This was taken from here: https://poopcode.com/missing-write-access-to-usr-local-lib-node-modules/

PS: for my specific use-case I also needed to run this one afterwards

sudo chown -R $USER /usr/local/bin/

Upvotes: 3

Julian
Julian

Reputation: 767

Please dont use sudo.

I don't know the context of your environment, but I got the error on a server where Plesk was running.

Maybe the following command will help (via SSH) to check the permissions:

plesk repair fs example.com.

Manual: https://docs.plesk.com/en-US/12.5/administrator-guide/plesk-administration/plesk-repair-utility/plesk-repair-utility-file-system.74668/

In my case the node_modules folder was copied via FTP and therefore it had the wrong corrections. If necessary, you can remove this and install it via Plesk using the Npm installation button.

Info: The button only appears if the document contains a package.json with information.

Upvotes: 0

Joel
Joel

Reputation: 31

it is very simple you can use

sudo npm install -g kazam

or

su -

then

npm install -g kazam

explenation

su -

makes you as root ,who have permission to read , write and delete in all users click here for the screen shot showing the error and the solution in the update of npm

this is for ubuntu i don't know is it work for other os

Upvotes: -5

barmalej
barmalej

Reputation: 51

This command will change the owner (chown) recursively (-R) for the current user in the specified directory

sudo chown -R $USER /usr/local/lib/node_modules

Upvotes: 5

firefly
firefly

Reputation: 906

An inadvisable way to fix the issue would be to use sudo:

sudo npm install -g monaca

However it would be better to find a way around this without using sudo.

npm install -g less does not work

Upvotes: -19

Ebrahim
Ebrahim

Reputation: 1818

Well, I used --save-dev and installed it not globally or using -g, the main problem occurs while you want it to write on default node_modules folder.

It solved my problem after 4 hours of checking multiple issues.

I even suggest you to use the npm init and make a package.json for a better dependency checking and then run npm install afterward. this video helps you for this https://www.youtube.com/watch?v=rTsz09zRuTU

Upvotes: 0

Shivam ashtikar
Shivam ashtikar

Reputation: 1188

add following lines to ~/.bashrc after installing npm:

npm set prefix ~/.npm
PATH="$HOME/.npm/bin:$PATH"
PATH="./node_modules/.bin:$PATH"

Execute following line after changes:

source ~/.bashrc

and as mentioned by @contemplator avoid using sudo

Upvotes: 106

Related Questions