sudo npm --versionを使用する場合、npm --versionは異なります。

sudo npm --versionを使用する場合、npm --versionは異なります。

マシンの Node.js をアップグレードしました。使用していたノード バージョン (Ubuntu リポジトリにあるもの) をアンインストールしました。次に、nvm をインストールし、Node.js 4.2.2 をインストールしました。

すべてエラーなく進みましたが、実行するとnpm --version2.14.7 と表示されたので、npm のバージョンをアップグレードするために、次のコマンドを実行することにしましたsudo npm install -g npm。しかし、確認すると、まだ 2.14.7 と表示されていました。そこで、今回を使用してもう一度確認したところsudo npm --version、最新の 3.3.10 バージョンがありました。

なぜこのようなことが起こるのでしょうか、またどうすれば修正できるのでしょうか?

スクリーンショットは次のとおりです。
sudoの有無にかかわらず、異なるnpmバージョンが表示されます。

Ubuntu 14.04を使用しています。

編集:

コマンド出力を追加する

sistemas@ITAACO01:~$ which npm
/home/sistemas/.nvm/versions/node/v4.2.2/bin/npm
sistemas@ITAACO01:~$ sudo which npm
/usr/local/bin/npm

答え1

出力から判断するとwhich、ユーザー ( ) は、にあるsistemas別の古いバージョンの を使用するように設定されており、 にあるシステム全体の更新バージョンは無視されているようです。npm/home/sistemas/.nvm/versions/node/v4.2.2/bin/npm/usr/local/bin/npm

/usr/local/binが 内にあるかどうかを確認します$PATH。( を実行しecho $PATH、その出力に が含まれているかどうかを確認します/usr/local/bin

そうでない場合は追加してください(PATH="$PATH:/usr/local/bin"に入れてください~/.bash_profile

答え2

2つの可能性があります:

  1. 新しいバージョン パスが存在しません:

    パスを追加します。例:/usr/local/bin/npmパスに追加

  2. 古いバージョンは次の場所にあります$PATH:

    古いバージョンのパスを削除します。例: Remove /home/sistemas/.nvm/versions/node/v4.2.2/bin/npmfrom$PATH

関連情報