Help us understand the problem. What is going on with this article?

npmでpermission deniedになった時の対処法[mac]

More than 1 year has passed since last update.

この記事について

npmを利用してinstallしたりupgradeしたりする際にpermission deniedと表示されてしまった時に助けになるかもしれない記事です。

現象

npmコマンドを実行したところ以下のようなエラーが出てしまう

npm ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g"
npm ERR! node v5.6.0
npm ERR! npm  v3.7.1
npm ERR! path /usr/local/lib/node_modules/npm/node_modules/aproba
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/node_modules/aproba'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/aproba']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules/npm/node_modules/aproba' }
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!     /Users/<任意のディレクトリ>/npm-debug.log

原因

不明・・・

対策

npm公式HPにありました。

対策1:npmのデフォルトディレクトリの権限を変更する

  1. npmディレクトリのパスを確認する
    npm config get prefixを実行するとおそらく/usr/localが表示される
    注意:もしディレクトリのパスが/usrとなっていた場合は対策2に進んでください
  2. npmディレクトリのオーナーを自分のアカウントに変更する sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

対策2:npmのデフォルトディレクトリを別のディレクトリに変更する

  1. グローバルインストールのためのディレクトリを作成する
    mkdir ~/.npm-global
  2. 新しいディレクトリを使う設定をnpmで行う npm config set prefix '~/.npm-global'
  3. ~/.profileを開くか作成し,以下の行を追加する
    export PATH=~/.npm-global/bin:$PATH
  4. 3の変更を反映する source ~/.profile

対策3:パッケージマネージャ使ってnodeを再インストールする

brew install node

参考リンク

03 - Fixing npm permissions | npm Documentation

okohs
Software Developer & Community Organizer. Keyword:Geek Women Japan/Java(Spring Boot)/PHP(Laravel)/Scala(Play, akka-http)/HTML5/CSS/Tenor Saxophone
https://okohs.github.io/
dena_coltd
    Delight and Impact the World
https://dena.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした