无法安装NodeJ:/ usr / bin / env:节点:没有这样的文件或目录

我试图将nodeJs安装到我的Ubuntu 14.04中,以便使用GruntJs。

我已经阅读了有关Ubuntu的不同执行方式问题?)的信息,因此,为了安装它,我做了以下操作:

sudo apt-get install npm

sudo npm install -g grunt-cli

在输入咕gr声之后,我得到了错误:

/usr/bin/env: node: No such file or directory

因此,我尝试了:

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

再试一次,仍然出现错误,我试过了:

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

我收到此消息:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

我确实尝试进行清理,以防万一:

sudo apt-get autoremove

但是没有,错误仍然存​​在:当我键入grunt时,我仍然得到 /usr/bin/env: node: No such file or directory

我该怎么办?

神无逆天2020/03/19 09:30:41

Just rename the command or file name ln -s /usr/bin/nodejs /usr/bin/node by this command

LEY泡芙2020/03/19 09:30:41

对于我的情况下链接 不要 工作如下

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

但是您可以以root身份打开/ usr / local / bin / lessc,并将第一行从node更改为nodejs。

-#!/ usr / bin / env节点

+#!/ usr / bin / env nodejs

米亚Stafan2020/03/19 09:30:41
sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
JimEva神奇2020/03/19 09:30:41

请按照以下命令解决问题。

在终端中:

  1. 清理整个NPM缓存:

    $ sudo npm cache clean -f
    
  2. sudo npm install -g n
    
  3. 安装最新的稳定版Node.js:

    sudo n stable
    

现在,已安装最新版本的Node.js。使用以下命令检查版本:

node -v
猴子神乐2020/03/19 09:30:41

根据您安装节点的方式,大多数情况下它可能不在/ usr / bin /中,就我而言,我是使用nvm进行安装的,因此我的节点位于./nvm/versions中。

使用此命令,which node我找到了路径,但是为了简化工作,可以运行此命令。

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node

上面的命令将获取您节点的位置并为您创建一个链接。

乐猴子2020/03/19 09:30:41

虽然ln -s显然是最简单的解决方法,但有一个解释:

由于与另一个软件包的冲突,Ubuntu存储库中的可执行文件称为nodejs而不是node。在运行软件时,请记住这一点。

安装时会出现此建议sudo apt-get install nodejs

因此,其他一些已知工具(我不知道它的作用。虽然在ubuntu存储库中是已知的,但默认情况下未在16.04中安装它)占用了该命名空间。

如果Ubuntu提供了一个“干净”解决此问题的建议,如果不是通过手工完成,该软件包会做的话,那会很好。(碰撞仍然是碰撞……如果+何时会发生)

阿飞番长2020/03/19 09:30:41

有两种解决方案:

a)将您的PATH变量设置为包括“ / usr / local / bin”

export PATH="$PATH:/usr/local/bin"

b)创建一个指向您路径中的“ / usr / bin”的符号链接

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

希望对您有所帮助。

梅路易2020/03/19 09:30:40

如果您已经安装了nodejs(请使用进行检查which nodejs)并且不想安装其他软件包,则可以以root用户身份进行:

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
A阿飞2020/03/19 09:30:40

当我使用gulp时,出现此错误。

~$ gulp

/ usr / bin / env:“节点”:没有这样的文件或目录

通过执行以下命令已将其删除,您必须记住/ usr / bin目录具有所有权限。

~$ ln -s /usr/bin/nodejs /usr/bin/node

这对我有用。

小胖Eva2020/03/19 09:30:40

做就是了

$ sudo apt-get install nodejs-legacy

它将开始工作。

斯丁理查德2020/03/19 09:30:40

就我而言,安装nodejs-legacy解决了该问题。

sudo apt-get install nodejs-legacy
逆天番长2020/03/19 09:30:40

我发现这通常是一个错误命名的错误,如果您是从软件包管理器安装的,则bin可能称为nodejs,因此您只需要像这样对其进行符号链接

ln -s /usr/bin/nodejs /usr/bin/node
神奇Harry2020/03/19 09:30:40

如果您能够使用nodejs命令在ubuntu终端上访问节点,则可以使用-创建一个nodejs和node的符号链接来解决此问题

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

这可以解决问题

阳光神奇2020/03/19 09:30:40

我认为您应该升级最新的节点版本

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Itachi卡卡西2020/03/19 09:30:40

问题不在于节点的版本。相反,这是在Ubuntu中默认安装NodeJS的方式。在Ubuntu中运行Node应用程序时,您必须运行nodejs somethign.js而不是node something.js

因此,在终端中调用的应用程序名称为nodejsand not node这就是为什么有必要为一个符号简单地将所有收到的命令nodenodejs

ln -s /usr/bin/nodejs /usr/bin/node
A伽罗2020/03/19 09:30:40

找到了答案。万一它对某人有帮助,我可以在这里发布:

进行符号链接可以解决此问题:(ln -s /usr/bin/nodejs /usr/bin/node 我的感谢和对bodokaiser的 +1投票)。

注意:我认为这篇文章并非完全相同,因为该文章有点像是浏览器问题。