node.jsのバージョン v4.4.7
Mac OS X Capitan
node.jsをずっと使っていなくて、使い始めようと、再インストールしたら、
npmが「command not found」でうんともすんとも言わず困った。
エンジニアの先輩たちに助けてもらい、なんとかなったので、その覚書。
原因
下記記事によると、Capitanにすると、
ディレクトリ権限がかわり、node.js(のインストーラー?)がファイルにアクセスできず、インストールが不完全になる模様。
(※すごいざっくりすぎる解釈です。)
参考:この記事のおかげで直りました!!!感謝!
「OS X 10.11 El CapitanのSystem Integrity Protection(SIP)についてちょっと詳しく」
http://rcmdnk.github.io/blog/2015/10/10/computer-mac/
対処
上記記事の言うとおりにする。
(SIPを無効化し、node.jsをインストールし直す。
インストール後、npmが動くことを確認したら、SIPを有効に戻す。)
【手順1】SIPを無効化する
1.リカバリーモードで起動する
Mac の電源を入れた直後または Mac を再起動した直後に「command (⌘) + R」キーを押し続け、Apple ロゴが表示されたら離します。
※下記記事より引用
https://support.apple.com/ja-jp/HT201314
2.リカバリーモードで起動できたら、ターミナルを開き、下記を入力する。
いつもとはデスクトップ画面が変わってしまいますが、ターミナルは
メニューバーの、「ユーティリティ」の中にあります。
-bash-3.2 # csrutil disable
enterを押すと、「Successfully ....」とか出てくる。
再起動後、無効化されているかチェックするには、ターミナルで以下を入力すればわかるとのこと。
csrutil status
↓
【手順2】node.jsを再インストール
無難に公式ページからダウンロードしました。
https://nodejs.org/en/download/
これでnpmが動きました!
↓
【手順3】SIPを有効化に戻す
1.リカバリーモードで起動する
無効化の時と同じ。
2.リカバリーモードで起動できたら、ターミナルを開き、下記を入力する。
-bash-3.2 # csrutil enable
これもenterを押すと、「Successfully ....」とか出てくる。
再起動後、「csrutil status」してみて有効化されているか確認する。