我根据这里给出的说明在ubuntu上安装了nodejs

当我在终端中写入node——version时,我看到: -bash: /usr/sbin/node:没有这样的文件或目录

不过,我可以在/usr/sbin/目录中看到node。

编写npm——版本显示为1.3.5 编写nodejs——version显示v0.10.15

此外,我可以在/usr/bin/目录中看到node。

那么,我如何让节点工作呢?

此外,如果我使用zsh而不是bash,那么节点命令就可以工作。


当前回答

添加到@randunel的正确答案(还不能评论SO):

我还必须将/usr/local/bin/node符号链接到/usr/bin/nodejs。

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

显然,这覆盖了/usr/bin/ node命令。

不知道这是如何设置的,但希望它能帮助其他人,因为弄清楚为什么上面的方法对我不起作用是一种痛苦。

其他回答

这种情况也发生在我身上。

node -v => 0.10.2
nodejs -v => 5.5.0

问题是我在一段时间前已经从源代码安装了节点。运行

which node

总是指向这个本地安装。同时,

echo NODE_PATH

指向本地安装。

删除带有源安装的目录没有帮助。它只是破坏了节点命令。最后,取消设置NODE_PATH环境变量并清除然后重新安装nodejs就达到了目的。

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

在这之后,

node -v => 5.5.0

npm install开始为依赖Node => 5.0的包工作。

对绝对初学者有帮助吗

虽然你已经得到了答案,但只是想指出node命令(不带任何参数)将以REPL read-eval-print-loop模式启动node以执行原始javascript代码。

使用node命令的另一种方法是提供一个js文件作为参数。这是我们最常用的方法。

如何使用nodejs网站上的官方说明:

v7中:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

版本6:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

v4的:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

我已经从Windows bash(通过Linux子系统- 14.04)和raspbian(基于ARM Debian)测试了这些。运行sudo apt-get install -y nodejs而不首先运行安装脚本将导致您获得节点0.10。

如果你打算安装需要build的原生npm模块,也可以运行:

sudo apt install -y build-essential

注意:这是跨所有架构的任何基于Debian的发行版的推荐路径。

迟到的回答,但最新的信息…

如果您使用node github安装自述me中的推荐方法安装node.js,建议遵循nodesource博客文章中的说明,而不是从过期的apt-get repo安装,node.js应该使用node命令和nodejs命令运行,而不必创建新的符号链接。

文中的方法是:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

请注意,这是针对v0.12的,在不久的将来,v0.12可能会过时。

另外,如果你使用的是公司代理(就像我一样),你需要在sudo命令中添加-E选项,以保留代理所需的env vars:

curl - sl https://deb.nodesource.com/setup_0.12 | sudo - e bash - .

我对这一切都很陌生,但对我来说,一个简单的别名就可以了:

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

至少对于直接在bash中运行和执行.js文件来说是这样。