我不明白为什么node命令不起作用,而nodejs起作用:
$ node --version
zsh: command not found: node
$ nodejs --version
v0.10.15
Run Code Online (Sandbox Code Playgroud)
我试过了apt-get install nodejs,但已经安装了最新版本。
此外:
$ npm
zsh: command not found: npm
Run Code Online (Sandbox Code Playgroud)
我以为npm包含在 NodeJS > 0.10 中?
小智 50
我同意,这有点问题,但我不知道为什么会这样。
首先,只需创建一个从被调用node指向nodejs二进制文件的符号链接。
ln -s /usr/bin/nodejs /usr/bin/node
Run Code Online (Sandbox Code Playgroud)
我发现很多安装 Nodejs 的指南(这里和这里)都有类似的代码来测试安装是否正确。所以本质上创建一个简单的服务器,如下所示:
// 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/');
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令在 nodejs 中运行它:
node hello_node.js
Run Code Online (Sandbox Code Playgroud)
然后当我尝试使用 npm 安装某些东西时,它失败并报告了相同的node not found消息。
kir*_*iri 45
该node包与 NodeJS 无关。有关节点的信息,请参见此处:
业余分组无线电节点程序(过渡包)
你应该安装 nodejs 包裹。
sudo apt-get install nodejs
Run Code Online (Sandbox Code Playgroud)
然后将它与nodejs命令一起使用。
原因node不起作用可能是因为node与上面链接的原始包冲突。
如果你想 npm ,您还必须安装它。
sudo apt-get install npm
Run Code Online (Sandbox Code Playgroud)
小智 26
就像@minerz029 已经说过与node包有冲突。但是如果您仍然需要该node命令(因为脚本仅node用于示例),正确的方法是安装nodejs-legacy包:
apt-get install nodejs-legacy
Run Code Online (Sandbox Code Playgroud)
而不是自己创建符号链接(尤其是不在 中/usr/bin/)。这将为nodenodejs提供一个命令。