如果使用 sudo npm --version,則 npm --version 會有所不同

如果使用 sudo npm --version,則 npm --version 會有所不同

我剛剛在我的機器上升級了nodejs。我卸載了我擁有的節點版本(ubuntu 儲存庫中的版本)。然後我安裝了nvm並安裝了nodejs 4.2.2。

一切都沒有錯誤,但是當我運行時npm --version它顯示2.14.7,然後我決定運行:sudo npm install -g npm為了升級npm版本,但當我檢查它時,它仍然顯示2.14.7。於是,我又查了一遍sudo npm --version,不過這次用的是最新的3.3.10版本。

為什麼會發生這種情況以及如何解決它?

這是一個螢幕截圖:
使用或不使用 sudo 時會顯示不同的 npm 版本

我使用的是 Ubuntu 14.04。

編輯:

新增 wich 命令輸出

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

有兩種可能性:

  1. 新版本路徑不存在:

    新增路徑。例如:新增/usr/local/bin/npm到路徑

  2. 舊版較早$PATH

    刪除舊版本路徑。例如:刪除/home/sistemas/.nvm/versions/node/v4.2.2/bin/npm$PATH

相關內容