问题描述
我不明白为什么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无关。有关节点的信息,请参见此处:
Amateur Packet Radio Node program (transitional package)
您应该安装nodejs
软件包。
sudo apt-get install nodejs
然后将其与nodejs
命令一起使用。
node
不起作用的原因可能是因为与上面链接的原始node
包冲突。
如果你想要npm
,你也必须安装它。
sudo apt-get install npm
次佳解决方法
我同意,这是一个问题,但我不知道为什么会这样。
修复
首先,只需创建一个名为node
的符号链接,指向nodejs
二进制文件。
ln -s /usr/bin/nodejs /usr/bin/node
问题
我发现安装Nodejs(here和here)的相当多的指南都有类似的代码来测试安装是否正确。所以基本上创建一个这样的简单服务器:
// 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
命令。