Search code examples
node.jsnpmsudo

I get "access denied" on `npm install`


I'm installing a new project and upon npm install I get the error below. I have tried the solution here, but that made no difference. Entering those lines in the terminal produced no output and npm install after that resulted in the same error. Any idea how to solve this?

Unhandled rejection Error: EACCES: permission denied, open '/home/user/.npm/_cacache/tmp/5134a7c3'd in 126ms

Unhandled rejection Error: EACCES: permission denied, open '/home/user/.npm/_cacache/tmp/fcf123f8'^1.1.7 fetched in 96ms

Unhandled rejection Error: EACCES: permission denied, open '/home/user/.npm/_cacache/tmp/f8a35f38'd in 39ms

Unhandled rejection Error: EACCES: permission denied, open '/home/user/.npm/_cacache/tmp/3914ffcc'4ms

Unhandled rejection Error: EACCES: permission denied, open '/home/user/.npm/_cacache/tmp/98bb7e0d'tched in 65ms

Unhandled rejection Error: EACCES: permission denied, open '/home/user/.npm/_cacache/tmp/5196be2e'63ms

Unhandled rejection Error: EACCES: permission denied, open '/home/user/.npm/_cacache/tmp/1cf3fdde'fetched in 394ms

npm WARN checkPermissions Missing write access to /projects/user-portal/node_modules
npm WARN checkPermissions Missing write access to /projects/user-portal/node_modules/@google-cloud
npm WARN [email protected] requires a peer of knex@>=0.6.10 <=0.13.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] - 3 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of popper.js@^1.14.7 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] license should be a valid SPDX license expression

npm ERR! path /projects/user-portal/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/projects/user-portal/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/projects/user-portal/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/projects/user-portal/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/projects/user-portal/node_modules' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

Update I tried sudo chown -R user:user /projects/ and then npm install, but this resulted in the following error:

[email protected] install /projects/user-portal/node_modules/sharp
node-gyp rebuild

gyp ERR! build error
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:13:12)
gyp ERR! stack     at F (/usr/lib/node_modules/npm/node_modules/which/which.js:68:19)
gyp ERR! stack     at E (/usr/lib/node_modules/npm/node_modules/which/which.js:80:29)
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:89:16
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:152:21)
gyp ERR! System Linux 3.10.0-957.21.3.el7.x86_64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /projects/user-portal/node_modules/sharp
gyp ERR! node -v v8.16.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

Solution

  • I just super user do it:

    sudo npm install -g
    

    for global stuff

    and just:

    sudo chown -R [user]:[user] /projects/ 
    

    or create a 'projects' group and add yourself to that group and make that group own it.

    Although, if I were you I'd just move your projects to your home directory like @agtabesh suggested.