npm install -gでError: EACCES: permission denied
npm installで-gをつけたグローバルオプション指定時にエラーがでた時の対処法
今日、firebase-toolsをインストールしようとした。
npm install -g firebase-tools
すると以下のメッセージが表示された。
npm ERR! { [Error: EACCES: permission denied, unlink '/usr/local/lib/node_modules/firebase-tools/LICENSE'] npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'unlink', npm ERR! path: '/usr/local/lib/node_modules/firebase-tools/LICENSE' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! error rolling back Error: EACCES: permission denied, unlink '/usr/local/lib/node_modules/firebase-tools/LICENSE' npm ERR! error rolling back at Error (native) npm ERR! error rolling back { [Error: EACCES: permission denied, unlink '/usr/local/lib/node_modules/firebase-tools/LICENSE'] npm ERR! error rolling back errno: -13, npm ERR! error rolling back code: 'EACCES', npm ERR! error rolling back syscall: 'unlink', npm ERR! error rolling back path: '/usr/local/lib/node_modules/firebase-tools/LICENSE' }
パーミッションエラーとなってしまった。
sudo を付ければインストールできるけども危険な方法らしい。
こんな時はグローバルモジュールのパーミッション変更を行う
mkdir ~/.npm-global npm config set prefix '~/.npm-global'
あとは.bashrcに以下を追加
export PATH="$HOME/.npm-global/bin:$PATH"
その後にsource .bashrcして
source .bashrc
npmを-gでインストールしなおして
npm install -g npm
sudoを付けるにfirebase-toolsをインストールしてみると
npm install -g firebase-tools
無事にインストールできましたー