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

Ros*_*nda 295 ubuntu node.js node-modules gruntjs npm-install

我正在尝试将nodeJs安装到我的Ubuntu 14.04中以便使用GruntJs.

我已经阅读了Ubuntu不同的做法(问题?),所以这就是我为安装它而做的事情:

sudo apt-get install npm

sudo npm install -g grunt-cli
Run Code Online (Sandbox Code Playgroud)

在那之后打字咕噜我有错误:

/usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以,我试过了:

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

sudo apt-get install -y nodejs

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

再试一次,仍然得到错误,我试过:

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

sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)

我有这样的信息:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

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

我该怎么办?

Ros*_*nda 787

找到了答案.为了防止有人,我会在这里发布:

做一个符号链接可以解决这个问题:( ln -s /usr/bin/nodejs /usr/bin/node 我要感谢和+1投票给bodokaiser).

注意:我认为这篇文章并不完全重复,因为该帖子有点像浏览器问题.

  • `sudo apt-get install nodejs-legacy`也会创建此链接,请参阅https://packages.debian.org/sid/nodejs-legacy上的说明 (96认同)
  • 您应该使用“which node”,以便获得正确的节点路径。所以命令是`ln -s "$(which node)" /usr/bin/node` (3认同)

Muh*_*rat 114

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

所谓终端的应用程序名称nodejs,而不是node.这就是为什么有必要为一个符号链接简单的转发收到的所有命令nodenodejs.

ln -s /usr/bin/nodejs /usr/bin/node
Run Code Online (Sandbox Code Playgroud)

  • 如果你得到"ln:无法创建符号链接'/ usr/bin/node'",则需要使用sudo运行此命令 (6认同)

小智 54

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

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Run Code Online (Sandbox Code Playgroud)

  • 只是一个提示;将代码行缩进 4 个空格;)此外,“n”不是与 Node.JS 关联的命令。 (2认同)

Moh*_*loo 33

如果您使用nvm节点版本管理器,请使用此命令创建符号链接:

sudo ln -s "$(which node)" /usr/bin/node
sudo ln -s "$(which npm)" /usr/bin/npm
Run Code Online (Sandbox Code Playgroud)
  • 第一个命令创建一个符号链接 node
  • 第二个命令创建一个符号链接 npm

  • 我更喜欢`/usr/local/bin/node` (3认同)
  • 这是可行的,但如果您打算使用 nvm 实际管理不同的版本,那么每次您 nvm 到不同的版本时都必须重复此操作。 (2认同)
  • 这有效。谢谢,当我运行 git commit 时,我收到错误“/usr/bin/env:'node':没有这样的文件或目录”。 (2认同)

小智 29

如果你能够使用nodejs命令访问ubuntu终端上的节点,那么可以使用创建nodejs和node的符号链接来简单地解决这个问题

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

这可以解决问题


小智 24

就我而言,安装nodejs-legacy解决了这个问题.

sudo apt-get install nodejs-legacy
Run Code Online (Sandbox Code Playgroud)


小智 10

做就是了

$ sudo apt-get install nodejs-legacy
Run Code Online (Sandbox Code Playgroud)

它将开始工作.


Ahm*_*ais 9

我发现这通常是一个错误的错误,如果你从一个包管理器安装你bin可能被称为nodejs所以你只需要像这样符号链接

ln -s /usr/bin/nodejs /usr/bin/node
Run Code Online (Sandbox Code Playgroud)


Tom*_*ale 8

如果您已经安装了nodejs(请检查which nodejs)并且不想安装另一个软件包,您可以以root用户身份:

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
Run Code Online (Sandbox Code Playgroud)


小智 6

当我使用gulp时,我遇到了这个错误.

~$ gulp
Run Code Online (Sandbox Code Playgroud)

/ usr/bin/env:'node':没有这样的文件或目录

通过执行以下命令删除了这一点,您必须记住/ usr/bin目录具有所有权限.

~$ ln -s /usr/bin/nodejs /usr/bin/node
Run Code Online (Sandbox Code Playgroud)

这对我有用..


小智 6

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

使用此命令which node我找到了路径,但为了使工作更轻松,您可以运行此命令。

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

在终端中:

  1. 清理整个 NPM 缓存:

    $ sudo npm cache clean -f
    
    Run Code Online (Sandbox Code Playgroud)
  2. sudo npm install -g n
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装最新稳定版本的 Node.js:

    sudo n stable
    
    Run Code Online (Sandbox Code Playgroud)

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

node -v
Run Code Online (Sandbox Code Playgroud)


man*_*aug 6

如果使用 snap 安装,

sudo ln -sfn /snap/node/current/bin/node /usr/bin/node
Run Code Online (Sandbox Code Playgroud)


小智 5

对此有两种解决方案:

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

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

b) 创建一个指向“/usr/bin”的符号链接,它已经在你的 PATH 中

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

我希望它有帮助。