LoginSignup
8
8

More than 5 years have passed since last update.

Macでnode.jsをインストールしたのに、npm command not found になったとき

Last updated at Posted at 2016-08-11

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」してみて有効化されているか確認する。

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8