Skip to content

npm package fails to install "npm ERR! Error: EACCES: permission denied" #14

Closed

Description

While trying to install a packge with npm (for example lodash) it fails with error message:

npm ERR! Linux 3.4.0+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "lodash"
npm ERR! node v5.10.1
npm ERR! npm  v3.8.3
npm ERR! path /root/test/node_modules/.staging/lodash-9a2aabe2
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall rename

npm ERR! Error: EACCES: permission denied, rename '/root/test/node_modules/.staging/lodash-9a2aabe2' -> '/root/test/node_modules/lodash'
npm ERR!     at destStatted (/usr/lib/node_modules/npm/lib/install/action/finalize.js:25:7)
npm ERR!     at FSReqWrap.oncomplete (fs.js:82:15)
npm ERR!
npm ERR! Error: EACCES: permission denied, rename '/root/test/node_modules/.staging/lodash-9a2aabe2' -> '/root/test/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  [Error: EACCES: permission denied, rename '/root/test/node_modules/.staging/lodash-9a2aabe2' -> '/root/test/node_modules/lodash']
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /root/test/npm-debug.log

I have tried to install it both with and without starting bash in administrator mode.

Activity

  1. borovaka commented on Apr 7, 2016

    @borovaka

    There is another wired thing about npm. When I try to install gulp globally I get:

    Error: could not get uid/gid
    net.js:135
        this._handle.open(options.fd);
                     ^
    
    Error: EINVAL: invalid argument, uv_pipe_open
        at Error (native)
        at new Socket (net.js:135:18)
        at createWritableStdioStream (internal/process/stdio.js:142:16)
        at process.stdout (internal/process/stdio.js:10:14)
        at console.js:99:37
        at NativeModule.compile (node.js:395:5)
        at Function.NativeModule.require (node.js:340:18)
        at node.js:223:27
        at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/uid-number/get-uid-gid.js:16:1)
        at Module._compile (module.js:413:34)
    
        at /usr/lib/node_modules/npm/node_modules/uid-number/uid-number.js:37:16
        at ChildProcess.exithandler (child_process.js:209:5)
        at emitTwo (events.js:100:13)
        at ChildProcess.emit (events.js:185:7)
        at maybeClose (internal/child_process.js:850:16)
        at Socket.<anonymous> (internal/child_process.js:323:11)
        at emitOne (events.js:90:13)
        at Socket.emit (events.js:182:7)
        at Pipe._onclose (net.js:475:12)
    
  2. jamesscholeyweb commented on Apr 7, 2016

    @jamesscholeyweb

    Same here. In fact if I try to update npm update -g npm@latest it attempts to copy lodash to the staging directory then throws the errror. Following this subsequent attempts to use npm are broken because it can no longer find lodash.

    IMPORTANT

    This really should be of utmost importance to the team. I for one was very excited and love how everything else works, but as you are adding this feature to windows with the intention of bringing web developers back to windows this needs fixing ASAP. This alone will stop me switching back to windows for web development and I'm sure it will be the same for many. It defeats the purpose of switching for me. Please please please fix.

  3. jgchristopher commented on Apr 8, 2016

    @jgchristopher

    Borislav Anchev (@borovaka) you can fix that error by allowing unsafe perms

    npm config set unsafe-perm=true

  4. jamesscholeyweb commented on Apr 8, 2016

    @jamesscholeyweb

    Already tried. It bypasses the error but it still doesn't work. You will
    get a permissions access error still or at least I did.

    On Friday, April 8, 2016, John Christopher notifications@github.com wrote:

    Borislav Anchev (@borovaka) https://github.com/borovaka you can fix that error by
    allowing unsafe perms

    npm config set unsafe-perm=true

    —
    You are receiving this because you commented.
    Reply to this email directly or view it on GitHub
    #14 (comment)

  5. jgchristopher commented on Apr 8, 2016

    @jgchristopher

    James Scholey (@jamesscholeyweb) right, I was able to get to your error after setting those perms. Otherwise I wasn't able to do anything.

  6. jgchristopher commented on Apr 8, 2016

    @jgchristopher

    This seems to be the underlying issue.

    root@localhost:/usr/lib/node_modules/.staging# rename /usr/lib/node_modules/.staging/lodash-24c8c2f4 /usr/lib/node_modules/ember-cli/node_modules/babel-core/node_modules/lodash Bareword found where operator expected at (eval 1) line 1, near "24c8c2f4" (Missing operator before c8c2f4?) Unknown regexp modifier "/b" at (eval 1) line 1, at end of line syntax error at (eval 1) line 1, near "/."

  7. Sparticuz commented on Apr 8, 2016

    @Sparticuz

    Related: MicrosoftDocs/WSL#26

    It seems to be an issue with symlinks

  8. jbaribeault commented on Apr 8, 2016

    @jbaribeault

    Confirmed - this is totally related to the symlink issue.

  9. jamespacileo commented on Apr 11, 2016

    @jamespacileo

    Same here with

    npm install typescript
    

    Here's the output

    npm WARN enoent ENOENT: no such file or directory, open '/root/package.json'
    npm WARN root No description
    npm WARN root No repository field.
    npm WARN root No README data
    npm WARN root No license field.
    npm ERR! Linux 3.4.0+
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "typescript" "gulp" "tsd"
    npm ERR! node v5.10.1
    npm ERR! npm  v3.8.3
    npm ERR! path /root/node_modules/.staging/ansi-regex-0de81b15
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall rename
    
    npm ERR! Error: EACCES: permission denied, rename '/root/node_modules/.staging/ansi-regex-0de81b15' -> '/root/node_modules/ansi-regex'
    npm ERR!     at destStatted (/usr/lib/node_modules/npm/lib/install/action/finalize.js:25:7)
    npm ERR!     at FSReqWrap.oncomplete (fs.js:82:15)
    npm ERR!
    npm ERR! Error: EACCES: permission denied, rename '/root/node_modules/.staging/ansi-regex-0de81b15' -> '/root/node_modules/ansi-regex'
    npm ERR!     at Error (native)
    npm ERR!  [Error: EACCES: permission denied, rename '/root/node_modules/.staging/ansi-regex-0de81b15' -> '/root/node_modules/ansi-regex']
    npm ERR!
    npm ERR! Please try running this command again as root/Administrator.
    
    npm ERR! Please include the following file with any support request:
    npm ERR!     /root/npm-debug.log
    
  10. russalex commented on Apr 12, 2016

    @russalex
    Contributor

    This looks a lot like #3. We can keep the conversation going on there.

    What I can say right now is that things are getting better (at least in non-mnt directories.). On my dev box I see:

    russ@RUSSALEX-DESK:~/tmp$ npm list
    /home/russ/tmp
    ├── acorn@3.0.4
    ├─┬ gulp@3.9.1
    │ ├── archy@1.0.0
    │ ├─┬ chalk@1.1.3
    │ │ ├── ansi-styles@2.2.1
    │ │ ├── escape-string-regexp@1.0.5
    │ │ ├─┬ has-ansi@2.0.0
    │ │ │ └── ansi-regex@2.0.0
    │ │ ├─┬ strip-ansi@3.0.1
    │ │ │ └── ansi-regex@2.0.0
    │ │ └── supports-color@2.0.0
    │ ├── deprecated@0.0.1
    │ ├─┬ gulp-util@3.0.7
    │ │ ├── array-differ@1.0.0
    

    It goes on from there. I should point out that I have not tried to actually use any of these, I have only installed them.

    The team is hard at work getting stuff up and running. Npm is one of those things we're looking at now.

  11. russalex commented on Apr 14, 2016

    @russalex
    Contributor

    Full disclosure here. Doing a little more testing on our internal build and finding that doing an "npm -g install " still throws the uv_pipe_open error, even when in ~/tmp.

    We have someone looking into it.

  12. mablae commented on Apr 16, 2016

    @mablae

    This seems also to be a valid issue when running npm in the new Windows 10 Bash

    This solved it for me: https://gist.github.com/mattpodwysocki/4e6951fc93adae064a73ed0b2251d180

    npm config set unsafe-perm true

    I have no idea what it does however.

  13. paseto commented on Jul 4, 2016

    @paseto

    If you are using with -g option, try to remove it.

  14. bitcrazed commented on Sep 23, 2016

    @bitcrazed
    Contributor

    FWIW, installing lodash as per the OP's request works fine on build 14931!

    image

  15. 152 remaining items

  16. daalvand commented on Jul 11, 2021

    @daalvand

    I removed nodejs sudo apt remove nodejs then install nodejs current vestion from this link -> link

    curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
    sudo apt-get install -y nodejs

    it worked for me.

  17. Tofandel commented on Sep 22, 2021

    @Tofandel

    I needed nodejs@14 but npm@latest and using n to switch to node 14 and then npm i -g npm@latest always resulted in the error

    To solve the issue I installed the latest node using n n latest and then export N_PRESERVE_NPM=1 and again n 14 which allowed me to have node v14 with an up to date npm without this weird error

  18. hanzhangyu commented on Nov 2, 2021

    @hanzhangyu

    Resolving EACCES permissions errors when installing packages globally

    If you see an EACCES error when you try to install a package globally, you can either:

    • Reinstall npm with a node version manager (recommended),

    or

    • Manually change npm's default directory

    Reinstall npm with a node version manager This is the best way to avoid permissions issues. To reinstall npm with a node version manager, follow the steps in "Downloading and installing Node.js and npm". You do not need to remove your current version of npm or Node.js before installing a node version manager.

    Manually change npm's default directory

    Note: This section does not apply to Microsoft Windows.

    To minimize the chance of permissions errors, you can configure npm to use a different directory. In this example, you will create and use hidden directory in your home directory.

    1. Back up your computer.
    2. On the command line, in your home directory, create a directory for global installations:

    mkdir ~/.npm-global

    1. Configure npm to use the new directory path:

    npm config set prefix '~/.npm-global'

    1. In your preferred text editor, open or create a ~/.profile file and add this line:

    export PATH=~/.npm-global/bin:$PATH

    1. On the command line, update your system variables:

    source ~/.profile

    1. To test your new configuration, install a package globally without using sudo:

    npm install -g jshint Instead of steps 2-4, you can use the corresponding ENV variable (e.g. if you don't want to modify ~/.profile):

    NPM_CONFIG_PREFIX=~/.npm-global npx: an alternative to running global commands

    If you are using npm version 5.2 or greater, you may want to consider npx as an alternative way to run global commands, especially if you only need a command occasionally. For more information, see this article about npx.

    try set prefix out of c disk, such as npm config set prefix '/mnt/f/npm/.npm-global'

  19. vivek0097 commented on Dec 6, 2021

    @vivek0097

    C:\Users\Dell>npm audit

    npm audit report

    ansi-regex >2.1.1 <5.0.1
    Severity: moderate
    Inefficient Regular Expression Complexity in chalk/ansi-regex - GHSA-93q8-gq69-wqmw
    fix available via npm audit fix
    node_modules/npm/node_modules/cli-table3/node_modules/ansi-regex
    node_modules/npm/node_modules/string-width/node_modules/ansi-regex
    strip-ansi 4.0.0 - 5.2.0
    Depends on vulnerable versions of ansi-regex
    node_modules/npm/node_modules/string-width/node_modules/strip-ansi
    string-width 2.1.0 - 4.1.0
    Depends on vulnerable versions of strip-ansi
    node_modules/npm/node_modules/string-width

    3 moderate severity vulnerabilities

    To address all issues, run:
    npm audit fix

    please any one can help to remove this error

  20. iamsriranga commented on Dec 21, 2021

    @iamsriranga

    As of now, I still faced the issue, closing vs code worked for me
    image

  21. vivek0097 commented on Dec 22, 2021

    @vivek0097

    I got error with 64 bit node 14,16,17v so i just uninstall this i am not able to create npx create-react-app, so i install 34 bit node latest version now i am able to create react-app my os is 64-bit.

  22. akillingbeck89 commented on Mar 16, 2022

    @akillingbeck89

    Easiest solution here I found was to just use a node package manager (e.g. NVM), then global installs work fine at least

  23. acongy commented on Mar 16, 2022

    @acongy
  24. jimbethancourt commented on Apr 5, 2022

    @jimbethancourt

    If you're using VS Code and find yourself getting this error message, close VS Code, run the desired command, and restart VS Code, as indicated in https://stackoverflow.com/questions/60853873/eaccess-error-when-installing-packages-on-wsl

  25. gifflet commented on May 11, 2022

    @gifflet

    If you installed node from apt-get, uninstall it completely and install it from NVM (Node Version Manager)

    Uninstalling node (Ubuntu)

    sudo apt-get purge --auto-remove nodejs

    Update apt indexes

    sudo apt update && sudo apt upgrade

    Install NVM

    sudo apt-get install -y curl \
    && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
    && source ~/.bashrc

    Finally, install node and npm

    nvm install --lts
  26. acongy commented on May 11, 2022

    @acongy
  27. Jahongirhacking commented on Jul 19, 2023

    @Jahongirhacking

    Borislav Anchev (@borovaka) you can fix that error by allowing unsafe perms

    npm config set unsafe-perm=true

    it says:

    npm ERR! `unsafe-perm` is not a valid npm option
    
    npm ERR! A complete log of this run can be found in:
    npm ERR! `path`    
    
  28. acongy commented on Jul 19, 2023

    @acongy
  29. Jahongirhacking commented on Jul 19, 2023

    @Jahongirhacking

    If you installed node from apt-get, uninstall it completely and install it from NVM (Node Version Manager)

    Uninstalling node (Ubuntu)

    sudo apt-get purge --auto-remove nodejs

    Update apt indexes

    sudo apt update && sudo apt upgrade

    Install NVM

    sudo apt-get install -y curl \
    && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
    && source ~/.bashrc

    Finally, install node and npm

    nvm install --lts

    Thanks it worked

  30. PttRulez commented on Oct 8, 2023

    @PttRulez

    I have fixed my problem on mac by
    sudo chown -R 501:20 "/Users/<my_username>/.npm"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions