Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Permission denied when installing npm module

I'm getting a strange permission error when I try to install an npm module. I'm starting it with sudo so I'm sure I do have access, but for some reason it keeps complaining with an error:

stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/joplin/node_modules/sqlite3/build'

I've tried restarting my computer, and creating a directory /usr/lib/node_modules/joplin with chmod 777, but it still doesn't work.

$ sudo npm install -g joplin /usr/bin/joplin -> /usr/lib/node_modules/joplin/main.js  > [email protected] install /usr/lib/node_modules/joplin/node_modules/sqlite3 > node-pre-gyp install --fallback-to-build  node-pre-gyp ERR! Tried to download(undefined): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.9/node-v48-linux-x64.tar.gz node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v48 ABI) (falling back to source compile with node-gyp) gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/joplin/node_modules/sqlite3/build' gyp ERR! stack     at Error (native) gyp ERR! System Linux 4.4.0-43-Microsoft gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64" gyp ERR! cwd /usr/lib/node_modules/joplin/node_modules/sqlite3 gyp ERR! node -v v6.11.2 gyp ERR! node-gyp -v v3.6.2 gyp ERR! not ok node-pre-gyp ERR! build error node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/nodejs /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64' (1) node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/joplin/node_modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:83:29) node-pre-gyp ERR! stack     at emitTwo (events.js:106:13) node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:191:7) node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:891:16) node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) node-pre-gyp ERR! System Linux 4.4.0-43-Microsoft node-pre-gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/joplin/node_modules/sqlite3/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" node-pre-gyp ERR! cwd /usr/lib/node_modules/joplin/node_modules/sqlite3 node-pre-gyp ERR! node -v v6.11.2 node-pre-gyp ERR! node-pre-gyp -v v0.6.36 node-pre-gyp ERR! not ok 

Edit

I've also tried sudo npm i sqlite3 -g --build-from-source but getting the same error Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/sqlite3/build' so it seems to be something to do with sqlite3.

like image 254
laurent Avatar asked Aug 05 '17 10:08

laurent


People also ask

How do I give npm permission?

Run “npm config get prefix” in your terminal. This will give the path of global node_modules: For ex: /usr/local. Change the user permissions for this folder by using following command: sudo chown -R <user_id> /usr/local/

How do I give sudo access to npm?

When you run as sudo, npm installs files to the same directory, but now they are owned by root. So this is what happens to absolutely every single person who has ever used npm : install some local packages without issue using npm install foo. install global package using sudo install -g foo-cli without issue.


1 Answers

You need to reclaim ownership of the .npm directory.

sudo chown -R $(whoami) ~/.npm 

and need the write permission in node_modules directory:

sudo chown -R $(whoami) /usr/lib/node_modules 
like image 119
Abhishek Singh Avatar answered Sep 27 '22 17:09

Abhishek Singh