Cannot install NodeJs: /usr/bin/env: node: No such file or directory

node.jsUbuntuGruntjsNpm InstallNode Modules

node.js Problem Overview


I'm trying to install nodeJs into my Ubuntu 14.04 in order to use GruntJs.

I've read about Ubuntu different way of doing it (issues?), so this is what I've done in order to install it:

sudo apt-get install npm

sudo npm install -g grunt-cli

Typing grunt after that I've got the error:

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

So, I've tried:

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

sudo apt-get install -y nodejs

sudo apt-get update

And trying again, and still getting the error, I've tried:

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

sudo apt-get install -y nodejs

I've got this message:

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

I did try a cleanup just in case:

sudo apt-get autoremove

But nope, the error is still there: when I type grunt I still get /usr/bin/env: node: No such file or directory

What should I do?

node.js Solutions


Solution 1 - node.js

Doing a symlink solves the issue:

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

(My thanks and +1 vote to bodokaiser's answer).

Solution 2 - node.js

The issue is not with the version of node. Instead, it is the way NodeJS is installed by default in Ubuntu. When running a Node application in Ubuntu you have to run nodejs somethign.js instead of node something.js

So the application name called in the terminal is nodejs and not node. This is why there is a need for a symlink to simply forward all the commands received as node to nodejs.

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

Solution 3 - node.js

I think you should upgrade lastest node version

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

Solution 4 - node.js

if you are using nvm node version manager, use this command to create a symlink:

sudo ln -s "$(which node)" /usr/bin/node
sudo ln -s "$(which npm)" /usr/bin/npm
  • The first command creates a symlink for node
  • The second command creates a symlink for npm

Solution 5 - node.js

if you are able to access node on ubuntu terminal using nodejs command,then this problem can be simply solved using -creating a symbolic link of nodejs and node using

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

and this may solve the problem

Solution 6 - node.js

In my case, installing nodejs-legacy solved the issue.

sudo apt-get install nodejs-legacy

Solution 7 - node.js

Just do

$ sudo apt-get install nodejs-legacy

And it will start working.

Solution 8 - node.js

If you already have nodejs installed (check with which nodejs) and don't want to install another package, you can, as root:

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

Solution 9 - node.js

I've found this is often a misnaming error, if you install from a package manager you bin may be called nodejs so you just need to symlink it like so

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

Solution 10 - node.js

Depending on how you installed your node, most of the time it might not be in /usr/bin/, in my own case it was I used nvm to install so my node was in ./nvm/versions.

Using this command which node I found out the path, but to make the work easier you can run this command.

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

the above command will get the location of your node and create a link for you.

Solution 11 - node.js

When I was using gulp i got this error.

~$ gulp

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

This was removed by executing following command you have to keep in mind that /usr/bin directory has all permissions.

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

this works for me..

Solution 12 - node.js

There are two solutions to this:

a) Set your PATH variable to include "/usr/local/bin"

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

b) Create a symlink to "/usr/bin" which is already in your PATH

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

I hope it helps.

Solution 13 - node.js

While ln -s is the obvious easiest fix, a piece of explanation:

> Because of a conflict with another package, the executable from the > Ubuntu repositories is called nodejs instead of node. Keep this in > mind as you are running software.

This advice comes up, when installing sudo apt-get install nodejs.

So some other known tool (I don't know what it does. While being known to ubuntu repositories, it is not installed by default in 16.04) occupies that namespace.

Would have been nice, if Ubuntu had offered an advice how to fix this 'cleanly', if not by doing by hand what otherwise the package would do. (a collision remains a collision... if+when it would occur)

Solution 14 - node.js

Follow these commands to fix the problem.

In a terminal:

  1. Clean the entire NPM cache:

    $ sudo npm cache clean -f
    
  2. sudo npm install -g n
    
  3. Install the latest stable version of Node.js:

    sudo n stable
    

Now the latest version of Node.js was installed. Check the version using:

node -v

Solution 15 - node.js

In case it's installed by using snap,

sudo ln -sfn /snap/node/current/bin/node /usr/bin/node

Solution 16 - node.js

sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>

Solution 17 - node.js

For my case link did NOT work as follow

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

But you can open /usr/local/bin/lessc as root, and change the first line from node to nodejs.

> -#!/usr/bin/env node > > +#!/usr/bin/env nodejs

Solution 18 - node.js

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

Solution 19 - node.js

For me the accepted answer did not yet work. I started off as suggested here:

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

After doing this I was getting the following error:

> /usr/local/lib/node_modules/npm/bin/npm-cli.js:85 > let notifier = require('update-notifier')({pkg}) > ^^^ > > SyntaxError: Block-scoped declarations (let, const, function, class) > not yet supported outside strict mode > at exports.runInThisContext (vm.js:53:16) > at Module._compile (module.js:374:25) > at Object.Module._extensions..js (module.js:417:10) > at Module.load (module.js:344:32) > at Function.Module._load (module.js:301:12) > at Function.Module.runMain (module.js:442:10) > at startup (node.js:136:18) > at node.js:966:3

The solution was to download the most recent version of node from https://nodejs.org/en/download/ .

Then I did:

sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

Now the update was finally successful: npm -v changed from 3.2.1 to 6.4.1

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRosamundaView Question on Stackoverflow
Solution 1 - node.jsRosamundaView Answer on Stackoverflow
Solution 2 - node.jsMuhammad bin YusratView Answer on Stackoverflow
Solution 3 - node.jsvanlan228View Answer on Stackoverflow
Solution 4 - node.jsMohammad RajablooView Answer on Stackoverflow
Solution 5 - node.jsHiroView Answer on Stackoverflow
Solution 6 - node.jsSuleyman ArslanView Answer on Stackoverflow
Solution 7 - node.jsPrabhu Nandan KumarView Answer on Stackoverflow
Solution 8 - node.jsTom HaleView Answer on Stackoverflow
Solution 9 - node.jsAhmad AwaisView Answer on Stackoverflow
Solution 10 - node.jsakisoftView Answer on Stackoverflow
Solution 11 - node.jsNaveen GuptaView Answer on Stackoverflow
Solution 12 - node.jsPavelView Answer on Stackoverflow
Solution 13 - node.jsFrank NockeView Answer on Stackoverflow
Solution 14 - node.jsAnandhu RajView Answer on Stackoverflow
Solution 15 - node.jsmanish2augView Answer on Stackoverflow
Solution 16 - node.jsKARTHIKEYAN.AView Answer on Stackoverflow
Solution 17 - node.jsTanvir AhmadView Answer on Stackoverflow
Solution 18 - node.jsShalauddin Ahamad ShuzaView Answer on Stackoverflow
Solution 19 - node.jsBlackbamView Answer on Stackoverflow