2014-10-02 56 views
1

我在我的服務器上有一個奇怪的問題,當我試圖安裝與npm需要sudo包的包我碰到的問題,我發現我的su和普通用戶使用不同的節點版本。Sudo用戶不使用相同的節點版本

$ node -v i get node version 0.10.x 

但是當我做:

$ sudo node -v i get node version 0.6.x 

su用戶由於某種原因,使用的是不同的節點版本比我正常使用,這會導致兼容性問題,當我npm install包需要sudo

我試過sudo apt-get upgrade nodejs沒有運氣。我如何讓su用戶使用與我的普通用戶相同的節點版本。

+1

什麼是'這node'兩個輸出? – jgillich 2014-10-02 07:03:11

+0

你使用哪種發行版本? – jgillich 2014-10-02 07:03:34

+1

你有沒有通過'nvm'安裝'node'? – Ravi 2014-10-02 07:05:34

回答

3

運行ll /usr/bin/node如果該文件存在,只是從普通用戶

解釋

運行rm /usr/local/bin/node如果你運行的node從普通用戶,你可能會看到它指向用戶本地斌目錄

which node 
/usr/local/bin/node 

這意味着常規用戶在本地安裝了另一個節點版本。

要讓相同的節點版本適用於所有用戶,此命令應該向您顯示usr bin(不是本地)。

which node 
/usr/bin/node 

通過刪除/usr/local/bin/node鏈接就會自動開始使用/usr/bin/node

+0

當我運行ll/usr/bin /節點時,我得到:lrwxrwxrwx 1 root root 22 Oct 2 07:11/usr/bin/node - >/etc/alternatives/node * – 2014-10-02 08:51:18

+0

只是一個快速更新。我運行了$ nvm deactivate,它刪除了nvm shell指令。現在當我運行節點-v的版本匹配。當我運行哪個節點時,我得到了相同的版本和路徑。我把這個標記爲答案,因爲這使我查找了另一個節點並刪除了另一個節點。 – 2014-10-02 08:59:14

0

嘗試與用戶的環境中運行sudo的:

sudo -E node -v