我在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
命令可以工作。
您需要手动创建符号链接/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
,因为不再需要它。