質問: /home/pi ; "npm config ls -l" to show all defaults. ``` nのインストール -------- **pi@raspberrypi:~/dev $ npm install n -g** ``` /home/pi/.npm_global/bin/n -> /home/pi/.npm_global/lib/node_modules/n/bin/n + n@6.1.3 added 1 package from 4 contributors in 3.621s ``` npm最新バージョンへのアップデート ------------------ **pi@raspberrypi:~/dev $ npm install npm@latest -g** コマンドを実行し、version6.13.3にアップデートできていると思うのですが、 上記の通り、$npm -vを実行すると、**5.80**が返ってきてしまいます。 ``` /home/pi/.npm_global/bin/npm -> /home/pi/.npm_global/lib/node_modules/npm/bin/npm-cli.js /home/pi/.npm_global/bin/npx -> /home/pi/.npm_global/lib/node_modules/npm/bin/npx-cli.js + npm@6.13.3 added 430 packages from 854 contributors in 53.185s ``` npm パッケージのバージョン確認結果 ------------------- **$ npm -v**ではなく、次の方法でバージョン確認した結果を掲載します。 ``` pi@raspberrypi:~/dev $ npm list -g --depth=0 /home/pi/.npm_global/lib --- n@6.1.3 --- npm@6.13.3 pi@raspberrypi:~/dev $ npm list --depth=0 /home/pi/dev --- (empty) ```
回答: raspypyさん、 まずは、`sudo`のおはなしから。 `sudo`は、`root`ユーザ・環境にて、コマンドが実行されます。 コマンドは、環境変数`PATH`に書かれているフォルダ(`:`が区切り)を先頭から順にたどって、見つかったものが実行されます。みつからないと、「コマンドが見つかりません。」ですね。 以下を実行して`PATH`の内容を表示してみると、違うのではないでしょうか。 ``` echo $PATH sudo sh -c 'echo $PATH' ``` 前者では、`pi`ユーザでの環境で、`n`コマンドへのフルパス(フォルダ)が含まれていて、後者にはないのではないかと思います。 `n`をインストールしたときに、使用ユーザ(`pi`?)の環境へのみインストールしたので、`sudo`では「コマンドが見つかりません。」となっていると思います。 とりあえず、以下で、やり直してみてください。 `/usr/local/bin`というデフォルトで含まれているところへインストールします。 (うまく動かないとき、いままで実行したのを戻すのができないのであれば、Raspbianの入れ直しからした方がよいと思います。) ``` # n をダウンロード curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n # 実行属性を付ける chmod a+x ./n # /usr/local/bin へコピー。 sudo cp -v n /usr/local/bin # 以下、https://github.com/tj/n に書かれていることを実行(To avoid requiring sudo for n and npm global installs... のあたり) sudo mkdir -p /usr/local/n sudo chown -R $(whoami) /usr/local/n sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share # nodeのltsをインストール n lts ``` これで、`node`環境を試してみてください。