質問: Node.jsのv8.9.4を一度アンインストール後、再インストールしたのですが、バージョンを調べるとSSHとコマンドプロンプトで違うバージョンが表示され、SSHではnpmが認識されなくなってしまいました。 【経緯】 ・無料学習サイトのドットインストール様でNode.jsの学習をしていて、推奨版のv8.9.4をインストールしたのですがSSHでバージョンを確認するとv0.10.48となってしまう ・いったんアンインストーラーを使用してNode.jsをアンインストールしたものの、SSH上ではまだv0.10.48が表示される ・/home/vagrant/nodejsディレクトリを削除、また、コマンドプロンプトで「npm uninstall npm -g」を実施 ・その後インストーラーを使用してNode.jsのv8.9.4を再インストール。現在は以下の状況です。 コマンドプロンプト node -v v8.9.4 npm -v v5.6.0 ・SSH node -v v0.10.48 npm -v -bash: npm:コマンドが見つかりません また、初心者ながらにPATHを調べようとしたところ、以下が表示されました。 ・コマンドプロンプト where node C:\Program Files\nodejs\node.exe C:\Program Files (x86)\Nodist\bin\node.exe where npm C:\Program Files\nodejs\npm C:\Program Files\nodejs\npm.cmd C:\Program Files (x86)\Nodist\bin\npm.cmd C:\Program Files (x86)\Nodist\bin\npm.exe ・SSH which node /usr/bin/node which npm /usr/bin/which: no npm in (/home/vagrant/.pyenv/plugins/pyenv-virtualenv/shims:/home/vagrant/.pyenv/shims:/home/vagrant/.pyenv/bin:/home/vagrant/.rbenv/shims:/home/vagrant/.rbenv/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin) Node.jsをアンインストールする前と同様にnpmを有効にしたい場合にはどのようにすればよろしいでしょうか?ご教授お願いいたします。
回答: そもそものVagrantの使い方と意味を覚えましょう。 Vagrantは自分のWindowsマシンの中で、 仮想的なCPU、仮想的なメモリ、仮想的なハードディスク...を利用して、仮想的なマシンを立ち上げるものです。 その力は絶大で、MacやLinuxから仮想的なWindowsマシンを立ち上げて、Windowsでしか動作しないプログラムを動作させたり、逆にWindowsからLinuxマシンを立ち上げて、Webサーバ利用に便利なLinux専用のプログラムを動作することに使われます。 もちろん仮想的なCPUやメモリを利用するので、処理速度は遅くなりますけどね。 これが質問文の何処に関係するのかというと、 質問文内で「SSHでは」と表現しているのは仮想マシンのLinuxを指しているからです。 そして、Windows世界での操作と、仮想マシン世界でのファイルやプログラムのインストール状態は完全に別物です。 > > ・推奨版のv8.9.4をインストールしたのですがSSHでバージョンを確認するとv0.10.48となってしまう > > > Windowsにv8.9.4を入れたんだね。 でもLinuxでは関係ないからv0.10.48になるのは当然でしょ。 > > ・いったんアンインストーラーを使用してNode.jsをアンインストールしたものの、SSH上ではまだv0.10.48が表示される > > > WindowsのNode.jsをアンインストールしたんだね。 でもLinuxでは関係ないからv0.10.48のままなのは当然でしょ。 要するに、2つの世界は完全に別物なので混同しちゃいけませんよって話ですね。 他の経緯で語られている内容も全てWindowsと仮想マシンのLinuxの状態を混同している事が原因です。 Linuxマシンの世界を操作するのはSSHで接続した後のコマンドのみです。 不便かとは思いますが、Linux内でどういうコマンドを打ち込めばNode.jsかという視点で調べなおしてみてください。