當前位置: 首頁>>技術教程>>正文


node:找不到命令

, , ,

問題描述

我不明白為什麽node命令不起作用,而nodejs工作:

$ node --version
zsh: command not found: node
$ nodejs --version
v0.10.15

我試過apt-get install nodejs,但已經安裝了最新版本。

而且:

$ npm
zsh: command not found: npm

我認為npm包含在NodeJS中> 0.10?

最佳解決方法

node包與NodeJS無關。有關節點的信息,請參見此處:

apt,nodejs,npm,ubuntu

Amateur Packet Radio Node program (transitional package)


您應該安裝nodejs軟件包。

apt,nodejs,npm,ubuntu

sudo apt-get install nodejs

然後將其與nodejs命令一起使用。

node不起作用的原因可能是因為與上麵鏈接的原始node包衝突。


如果你想要npm,你也必須安裝它。

apt,nodejs,npm,ubuntu

sudo apt-get install npm

次佳解決方法

我同意,這是一個問題,但我不知道為什麽會這樣。

修複

首先,隻需創建一個名為node的符號鏈接,指向nodejs二進製文件。

ln -s /usr/bin/nodejs /usr/bin/node

問題

我發現安裝Nodejs(herehere)的相當多的指南都有類似的代碼來測試安裝是否正確。所以基本上創建一個這樣的簡單服務器:

// hello_node.js
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

然後使用以下命令在nodejs中運行它:

node hello_node.js

然後,當我嘗試使用npm安裝某些東西時,它失敗並報告相同的node not found消息。

第三種解決方法

像@ minerz029已經說過與node包有衝突。但是,如果您仍然需要node命令(因為腳本僅使用node),正確的方法是安裝nodejs-legacy包:

apt-get install nodejs-legacy

而不是自己創建符號鏈接(特別是在/usr/bin/中)。這將為nodejs提供node命令。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/2319.html,未經允許,請勿轉載。