首页 文章

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

提问于
浏览
276

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

我已经阅读了Ubuntu different way这样做(issues?),所以这就是我为安装它所做的事情:

sudo apt-get install npm

sudo npm install -g grunt-cli

之后输入咕噜声我得到了错误:

/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

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

我该怎么办?

15 回答

  • 0

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

    sudo npm cache clean -f
    sudo npm install -g n
    sudo n stable
    
  • 6

    对于我的案例链接 did NOT work 如下

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

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

    • #!/ usr / bin / env node#!/ usr / bin / env nodejs
  • 763

    做就是了

    $ sudo apt-get install nodejs-legacy
    

    它将开始工作 .

  • 24

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

    update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
    
  • 28

    只需通过此命令重命名命令或文件名 ln -s /usr/bin/nodejs /usr/bin/node

  • 1

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

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

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

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

  • 10

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

    ~$ gulp
    

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

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

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

    这对我有用..

  • 107

    虽然 ln -s 是一个明显最容易解决的问题,但有一个解释:

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

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

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

    本来不错的,如果Ubuntu提供了如何解决这个“干净利落”的建议,如果不是通过手工做什么,否则包装会做 . (碰撞仍然是碰撞......如果发生碰撞)

  • 4

    有两种解决方案:

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

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

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

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

    我希望它有所帮助 .

  • 2

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

    sudo apt-get install nodejs-legacy
    
  • 44

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

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

    这可以解决问题

  • 7

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

    做一个符号链接解决了这个问题: ln -s /usr/bin/nodejs /usr/bin/node (谢谢,1票对bodokaiser) .

    注意:我认为这篇文章并不完全相同,因为该帖子在某种程度上是一个浏览器问题 .

  • 0

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

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

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

    因此,在终端中调用的应用程序名称是 nodejs 而不是 node . 这就是为什么需要一个符号链接来简单地将收到的所有命令转发为 nodenodejs .

    ln -s /usr/bin/nodejs /usr/bin/node
    
  • 9
    sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
    

相关问题