[Sy]【解決】Macでnpm installしたら.npm配下のパーミッションの問題でエラーになる
2015/05/13
Mac OS X
にてnpm install [package]
とした場合に、~/.npm
配下のパーミッションの問題でパッケージのインストールに失敗してしまった。その場合の対処について。
問題
普通にnpm install
でパッケージをインストールしようとすると、
$ npm install mongoose
npm ERR! Darwin 14.3.0
npm ERR! argv "/Users/utano320/.nvm/v0.12.0/bin/node" "/Users/utano320/.nvm/v0.12.0/bin/npm" "install" "mongoose"
npm ERR! node v0.12.0
npm ERR! npm v2.5.1
npm ERR! path /Users/utano320/.npm/ms/0.1.0
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! Error: EACCES, mkdir '/Users/utano320/.npm/ms/0.1.0'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES, mkdir '/Users/utano320/.npm/ms/0.1.0']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! path: '/Users/utano320/.npm/ms/0.1.0',
npm ERR! parent: 'mongoose' }
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/utano320/path/to/app/npm-debug.log
とエラーになった。
どうやら、mkdir '/Users/utano320/.npm/ms/0.1.0'
でディレクトリの作成に失敗している様子。
Please try running this command again as root/Administrator.
とあるので、パーミッションの問題っぽい。
試しに下記コマンドで~/.npm/ms/
ディレクトリがあるのかどうか見てみると、
$ ls -al ~/.npm | grep ms
drwxr-xr-x 4 root staff 136 3 9 18:14 ms
なるほどrootになってる。
~/.npm
はキャッシュの役割みたいなので、すでに以前ms
パッケージをroot権限でインストールしたことがあって、それをユーザ権限で更新しようとしたからうまくいってない、ということみたい。
対処
ということで、一括で~/.npm
配下のすべてのディレクトリのオーナーを自分自身に変更してしまう。
$ sudo chown -R `whoami` ~/.npm
そしてリトライ。
$ npm install mongoose
・
・
・
mongoose@4.0.2 node_modules/mongoose
├── regexp-clone@0.0.1
├── sliced@0.0.5
├── muri@1.0.0
├── hooks-fixed@1.0.1
├── mpromise@0.5.4
├── kareem@1.0.0
├── mpath@0.1.1
├── async@0.9.0
├── ms@0.1.0
├── mquery@1.4.0 (debug@0.7.4, bluebird@2.3.2)
└── mongodb@2.0.27 (readable-stream@1.0.31, mongodb-core@1.1.21)
うまくいきました!