我根据这里给出的说明在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,那么节点命令就可以工作。


您需要手动创建一个符号链接/usr/bin/node。bash兼容shell的快捷方式:

sudo ln -s `which nodejs` /usr/bin/node

或者如果你使用非标准shell,只需硬编码你找到的nodejs路径:

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

后编辑

我在你发布的链接中找到了这个解释

与节点包(业余分组无线电节点程序)命名冲突,nodejs二进制文件已从node重命名为nodejs。你需要将/usr/bin/node链接到/usr/bin/nodejs,或者你可以卸载业余分组无线节点程序来避免这种冲突。

稍后稍后编辑

我已经有一段时间没有回答这个问题了。虽然我在这里发布的解决方案对我有用过几次,但用户在评论中报告了更多的解决方案:

从@user229115

—install /usr/bin/node node /usr/bin/nodejs

来自 AskUbuntu (用户左)

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

我想是这样的:

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

使用Debian替代方案。


显然不同版本的Ubuntu解决方案是不同的。以下是我在Ubuntu 13.10上使用的:

sudo apt-get install nodejs-legacy

HTH

编辑:经验法则:

如果你已经安装了nodejs,但缺少/usr/bin/node二进制文件,那么也要安装nodejs-legacy。这只是创建了缺少的软链接。

根据我的测试,Ubuntu 17.10及以上版本在安装了nodejs之后已经有了compatibility-softlink /usr/bin/node,所以这些版本中没有nodejs-legacy,因为不再需要它了。


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

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

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


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

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

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

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

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


我在Ubuntu 14.04中也有同样的问题。

我已经安装了“nodejs”,它正在工作,但前提是我使用命令“nodejs”。如果我尝试使用node,什么都不会发生。

我修复了这个问题在接下来的方式:

安装nodejs-legacy Sudo apt-get install nodejs-legacy

之后,当我在命令行中键入“节点”时,我得到一个错误消息“/usr/sbin/节点:没有这样的文件或目录”

其次,我所做的是在“nodejs”上添加一个符号链接: Sudo ln -s /usr/bin/nodejs /usr/sbin/node


我创建了一个符号链接,但它仍然不起作用。

我忘记重新启动我的终端(我的putty连接)。在我有它的工作没有符号链接:)


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

如果您使用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 - .


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

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的包工作。


这对我来说很管用:

alias node=nodejs

按照这个链接的说明操作。


节点版本管理器(nvm)

如果你想安装多个nodejs版本,并在它们之间轻松切换,我建议使用节点版本管理器。它还解决了命名问题(node vs nodejs)

这很简单:

安装一个nodejs版本:

$ nvm install 4.4

现在你有了nodejs 4.4,除了已经安装的版本,你可以使用node命令到达新安装的版本:

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

你可以安装更多的nodejs版本,并在它们之间轻松切换:

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)

我遇到了同样的问题,符号链接帮了我: Sudo ln -s /usr/bin/nodejs /usr/bin/node 在那之后 Sudo NPM install -g phantomjs-prebuilt

很顺利


安装nodejs的最佳方式是通过NVM(节点版本管理器)

删除以前的版本:

$ sudo apt-get purge node
$ sudo apt autoremove

同时删除包含该文件夹的目录下的所有node_modules by $ sudo rm -rf node_modules。

Node和Nodejs在技术上是一样的。只是名字变了。

首先安装或更新nvm

以root用户运行$ sudo su

Then

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash

OR

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash

检查nvm to path

$ source ~/.profile
$ nvm ls-remote

如果你得到关于清单的错误,然后安装git。

$ sudo apt-get install git

重新运行:

nvm ls遥控器还是sudo nvm l遥控器

$ nvm install version-you-require 

检查版本

# node --version
nvm use version-you-require

信息提供:https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps


如何使用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命令(不带任何参数)将以REPL read-eval-print-loop模式启动node以执行原始javascript代码。

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


如果你在AWS EC2实例上运行Ubuntu实例(在Ubuntu 16.x上测试),那么这些步骤可能对你有用:

    sudo apt-get update
    sudo apt-get --purge remove node -y
    sudo apt-get --purge remove nodejs -y
    sudo apt-get --purge remove legacy-node -y
    sudo rm  /usr/bin/node
    curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
    sudo apt-get install nodejs -y
    node -v

如果一切正确,最后一个命令应该有如下输出:v6.x.x

如果不是,那么执行以下命令:

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

希望这能有所帮助。它神奇地帮助了我(呵呵)。


删除现有的节点和nodejs是可选的,但必须安装最新的7个。x nodejs。

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

只需使用NVM(节点版本管理器)- https://github.com/creationix/nvm

它已经成为管理Node.js的标准。

当你需要一个新版本时:

nvm install NEW_VER
nvm use XXX

如果出了问题,你可以随时回去

nvm use OLD_VER

使用实例启用nodejs:

scl enable rh-nodejs8 bash

注意:检查节点版本。

来源: https://developers.redhat.com/products/softwarecollections/hello-world/


https://nodejs.org/en/download/

Download .pkg file on your mac and install it. it directly works.

➜  ~ which node
/usr/local/bin/node
➜  ~ node --version
v10.11.0
➜  ~ which npm
/usr/local/bin/npm
➜  ~ npm --version
6.4.1

在我的例子中,我只用了这个

sudo npm cache clean -f

sudo npm install -g n

sudo n stable

这将安装一个稳定版本

那就把它做成符号链接

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