問題描述
我正在嘗試將nodeJs安裝到我的Ubuntu 14.04中以便使用GruntJs。
我已經閱讀了Ubuntu different way這樣做(issues?),所以這就是我為安裝它所做的:
sudo apt-get install npm
sudo npm install -g grunt-cli
在那之後打字咕嚕我有錯誤:
/usr/bin/env: node: No such file or directory
所以,我試過了:
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
sudo apt-get update
再試一次,仍然得到錯誤,我嘗試過:
sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/
sudo apt-get install -y nodejs
我有這樣的信息:
nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.
我確實嘗試過清理,以防萬一:
sudo apt-get autoremove
但不,錯誤仍然存在:當我輸入咕嚕聲時,我仍然得到/usr/bin/env: node: No such file or directory
我該怎麽辦?
最佳解決辦法
找到了答案。為了防止有人,我會在這裏發布:
做一個符號鏈接解決了這個問題:ln -s /usr/bin/nodejs /usr/bin/node
(謝謝你和+1投票給bodokaiser)。
注意:我認為這篇文章並不完全重複,因為該帖子有點像瀏覽器問題。
次佳解決辦法
問題不在於節點版本。相反,它是默認情況下在Ubuntu中安裝NodeJS的方式。在Ubuntu中運行Node應用程序時,您必須運行nodejs somethign.js
而不是node something.js
因此終端中調用的應用程序名稱是nodejs
而不是node
。這就是為什麽需要一個符號鏈接來簡單地將收到的所有命令作為node
轉發到nodejs
的原因。
ln -s /usr/bin/nodejs /usr/bin/node
第三種解決辦法
我認為你應該升級最新的節點版本
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
第四種辦法
如果你能夠使用nodejs命令訪問ubuntu終端上的節點,那麽可以使用-creating nodejs和node的符號鏈接來簡單地解決這個問題
ln -s /usr/bin/nodejs /usr/bin/node
這可以解決問題
第五種辦法
就我而言,installing nodejs-legacy解決了這個問題。
sudo apt-get install nodejs-legacy
第六種辦法
做就是了
$ sudo apt-get install nodejs-legacy
它將開始工作。
第七種辦法
我發現這通常是一個錯誤的錯誤,如果你從一個包管理器安裝你bin可能被稱為nodejs所以你隻需要像這樣符號鏈接它
ln -s /usr/bin/nodejs /usr/bin/node
第八種辦法
如果您已經安裝了nodejs(請與which nodejs
一起檢查)並且不想安裝另一個軟件包,您可以以root用戶身份:
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
第九種辦法
當我使用gulp時,我遇到了這個錯誤。
~$ gulp
/usr /bin /env:’node’:沒有這樣的文件或目錄
通過執行以下命令刪除了這一點,您必須記住/usr /bin目錄具有所有權限。
~$ ln -s /usr/bin/nodejs /usr/bin/node
這對我有用..
第十種辦法
雖然ln -s
是一個明顯最簡單的解決方案,但有一點解釋:
Because of a conflict with another package, the executable from the Ubuntu repositories is called nodejs instead of node. Keep this in mind as you are running software.
安裝sudo apt-get install nodejs
時會出現此建議。
所以其他一些已知的工具(我不知道它的作用。雖然ubuntu存儲庫已知,但默認情況下在16.04中沒有安裝)占用該命名空間。
本來不錯的,如果Ubuntu已經提供了如何修複這個’cleanly’的建議,如果不是通過手工做什麽,否則包將做。 (碰撞仍然是碰撞……如果發生碰撞時會發生碰撞)