2011-08-27 133 views
0

我需要使用sudo訪問在我的Ubuntu機器上運行節點。節點的目錄在sudo路徑中,但是當試圖運行它時,我得到一個未找到的命令。我可以明確地調用哪個工作的節點。Sudo路徑 - 找不到Node.js

//works 
node 
> 

which node 
/root/local/node/bin/node 

echo sudo $PATH 
sudo /root/local/node/bin:/usr/bin/node:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

sudo node --version 
sudo: node: command not found 

//explicitly calling it works 
sudo node /root/local/node/bin 
> 
+1

您的最後一條命令是在/ root/local/node中執行名爲「bin」的程序。如果這樣做,你的第一個''哪裏'說謊。 – geoffspear

+0

@Wooble實際上,顯式調用應該到/ root/local/node/bin/node目前爲止,我可以從不同版本的節點安裝中猜測。貝克的最後一個命令是不完整的。 PATH手動添加,它在結尾處遺漏/節點。從源構建時,/ node/bin總是目錄。 – moonstruck

回答

2

嗯,我不認爲有這樣的事,作爲一個「命令路徑」 - 你的第二個命令只是有呼應「命令」,然後你的正常路徑。無論如何,如果你正在運行sudo,那麼你確實應該根據路徑確定而不是--爲了最大限度地降低安全風險,您應該儘可能爲每個命令和文件參數提供顯式路徑名。如果sudo不想運行某些內容,則需要使用visudo將其添加到/etc/sudoers

+0

那些低調的護理人員能夠啓發我什麼我錯了嗎? –