当前位置: 首页>>技术问答>>正文


node:找不到命令

ubuntuer 技术问答 , , , 去评论

问题描述

我不明白为什么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/article/2686.html,未经允许,请勿转载。