提问者:小点点

nodejs与ubuntu 12.04上的node


我在ubuntu上安装了nodejs,下面给出了说明

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

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

编写NPM--version显示1.3.5
编写NodeJS--version显示V0.10.15

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

那么,如何使node工作呢?

另外,如果我使用zsh而不是bash,那么node命令可以工作。


共3个答案

匿名用户

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

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

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

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

以后编辑

我在你贴的链接里找到了这个解释

与节点包(业余分组无线电节点程序)存在命名冲突,nodejs二进制已从一个节点重命名到另一个节点。您需要将/usr/bin/Node符号链接到/usr/bin/nodejs,或者可以卸载业余分组无线电节点程序以避免冲突。

稍后稍后编辑

我已经有一阵子没接了。虽然我在这里发布的解决方案对我起了几次作用,但用户在评论中报告了更多的解决方案:

来自@User229115

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

来自AskUbuntu(用户leftium)

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版本之间的解决方案有所不同。以下是我在Ubuntu13.10上使用的方法:

sudo apt-get install nodejs-legacy

HTH

编辑:经验法则:

如果您已经安装了nodejs,但缺少/usr/bin/node二进制文件,那么也请安装nodejs-legacy。这就造成了缺失的软链路。

根据我的测试,在安装nodejs之后,Ubuntu17.10和更高版本已经具备了兼容性-softlink/usr/bin/node,因此这些版本中没有nodejs-legacy,因为不再需要它。