Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NPM cannot install dependencies - Attempt to unlock something which hasn't been locked

As per photusenigma at: https://github.com/npm/npm/issues/4815

Run these commands in a terminal window (note - DON'T replace the $USER part...thats a linux command to get your user!):

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules

...and...if you're on a mac (like I am), and still see errors after running these commands, then run this last one and you should be good. (Recommend you try testing before you do this one. I don't like changing the permissions on the ENTIRE /usr/local directory unless it really seems necessary!)

sudo chown -R $USER /usr/local

I worked with a co-worker this afternoon and figured out what the problem was. My ".npm" folder in my home directory was owned by the root user instead of myself. I'm not sure what happened to cause that. Maybe I installed node or npm as the root admin at one point. In any case I just ran sudo chown -R [username] .npm and I was finally able to run npm install commands from my projects again!


In my case the issue was invoking npm with a user that does not have a HOME directory, so for example the following command would fail:

sudo -u someUser npm install

The solution is to provide a HOME directory, where someUser has write access:

sudo -u someUser HOME=/some/directory npm install

Had the same issue and fixed it by changing the persmissions as per the accepted answer:

sudo chown -R $USER ~/.npm

However, the second command should be avoided as it downgrades the permissions of a system resource (sudo chown -R $USER /usr/local/lib/node_modules). Not a good idea.

For the record: "usr" in /usr/local stands for Unix System Resources.


None of this worked for me. I had to run literally as root by doing the following:

sudo su -
sudo npm install forever -g

Then the package installed on Linux Ubuntu 14.04.