質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Node.js

    2415questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • npm

    384questions

    npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

  • シェル

    283questions

    シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

npmがインストールされない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 595

eri_3100

score 23

自分なりに調べたのですが、ちょっとわからずご教示お願いいたします。

![イメージ説明](8e7d2dbf2bea331f69a4c02bc9e25e32.png)

Node.jp v10.15.0をインストールしたのですが、添付の通りnpmが見つかりません。
npmがないので、当初の目的であるnode-sassをインストールできず、大変困っています。

初心者な質問で申し訳ないのですが、ご回答頂けますでしょうか?
どうぞよろしくお願いいたします。


01260130 追記

バージョンなどについては、

$node-v
v10.15.0
$which node
/usr/local/bin/node

と確認が取れています。
PEPLもしましたが起動していました。

npmだけ、
$which npm
$npm -v
にて

-bach :npm:command not found

と表示されてしまいます。

手順は、


https://nodejs.org/en/


LTSのほうをDLしています。

最初の表示ではこのようになっています。


01260800 追記
入力しますと下記のように表示されます。

イメージ説明

探すファイルがないってことでしょうか・・・??


01260930 追記

やってみたのですが、全然数値が違いますね;;
これは統一しているものなのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • set0gut1

    2019/01/26 07:55

    追記分読みました。

    /usr/local/lib/node_modules/npm って今どういう状態になっていますか?
    また、 /usr/local/lib/node_modules/npm/bin/npm-cli.js --version とするとどうなりますか。

    キャンセル

  • set0gut1

    2019/01/26 08:24 編集

    pkgutil で分解して確認したんですが、 npm のインストールは

    - /usr/local/lib/node_modules/npm を削除
    - /usr/local/lib/node_modules/npm にインストール
    - /usr/local/bin に npm と npx を作成(シンボリックリンク)

    となってまして、何らかの事情で /usr/local/lib 以下?へのファイル作成に失敗してるっぽいですね。

    一番怪しいのパーミッションなのでちょっと確認してみてほしいです。

    ① ls -l /usr/
    ② ls -l /usr/local/
    ③ ls -l /usr/local/lib/

    ちなみに僕の環境(mac)だと
    ① はすべて 755 の root:wheel で、
    ②③ はすべて 755 の set0gut1:admin になってます。

    キャンセル

  • eri_3100

    2019/01/26 09:47

    追記させていただきました!
    なんども?ばかりで申し訳ございません。ご回答いただき本当にありがとうございます。

    キャンセル

回答 2

checkベストアンサー

0

pkgでインストールできない原因は気になるし、環境が壊れている可能性もあるので調べた方が良いんですが、それは置いといてアンサーします。

通常あんまり /usr/local/bin 以下に固定されたバージョンの node を入れません。
プロジェクトによって node のバージョンがマチマチで、複数のバージョンの node を切り替えながら開発をする局面があるからです。

方法はいくつかあるのですが、 nvm を使うっていうのがわりとメジャーです。
Qiita: nvm + Node.js + npmのインストール

nvm を使うとユーザーディレクトリ以下に複数のバージョンの node や npm が入り、コマンドで PATH が通っているものが切り替わる感じになります。
ゆえに /usr/local/lib 以下に npm を入れられない問題は回避できます。


/usr/local/ 周りの permission について調べると、 /usr/local/* が root:wheel になってるせいで homebrew が失敗して、 sudo chown -R $(whoami):admin /usr/lcoal/* すると直ったっていう話が多いですね。
質問者様の状況もこれに似てて、所有者の変更で node の pkg インストールが成功するようになると思われます。
なんで /usr/local/ 以下のディレクトリが root 所有になっているのかとかは分からないです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/26 09:47

    シェルを触ったのが今回初めてですが、環境が壊れているのは何としても調べなければですね;;

    pkgですが、展開したときデフォルトで/usr/local/binの表示が出てきたので、そのままダウンロードしてしまいました。まだ理解まではできていませんが、PATHのルートが違う、という記事もqiitaで何個か読みまして、おっしゃる通りPATHの切り替えをするとインストールまでできるのかもしれないですね…!

    キャンセル

  • 2019/01/26 10:13 編集

    (コメントを回答本文に移動させます。)

    キャンセル

0

コメント頂いた/usr/local が root:wheelになっている、という部分を調べたところ、MacOS X 10.11 El Capitanより追加されたセキュリティ機能、SIP(System Integrity Protection)が、ちょうど/usr/localの部分を勝手にガードしてしまうということがわかりました。

sudo chown -R $(whoami):admin /usr/lcoal/

で各所有者を変更しようとしたのですが、上が邪魔をしていたようです。
以下を参考にセキュリティを解除しました。
https://qiita.com/iwaseasahi/items/9d2e29b02df5cce7285d

イメージ説明

ひとまず解除ができたので、Node.jsを一度削除して再ダウンロードしたいと思います。
本当に助かりました!ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/26 15:52

    /usr/local/ ではなく /usr/local/* に対してなら解除の必要なくいけるそうです。

    キャンセル

同じタグがついた質問を見る

  • Node.js

    2415questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • npm

    384questions

    npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

  • シェル

    283questions

    シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。