nodejs vs node on ubuntu 12.04
I installed nodejs on ubuntu from instructions given here
When I write node --version
in the terminal I see this : -bash: /usr/sbin/node: No such file or directory
I can see node in the /usr/sbin/
directory, though.
Writing npm --version
shows 1.3.5
Writing nodejs --version
shows v0.10.15
Also, I can see node in the /usr/bin/
directory.
So, how do I get node
working?
Also, If I use zsh instead of bash, then node
command works.
Solution 1:
You need to manually create a symlink /usr/bin/node
. Shortcut for bash compatible shells:
sudo ln -s `which nodejs` /usr/bin/node
Or if you use non-standard shells, just hardcode the path you find with which nodejs
:
sudo ln -s /usr/bin/nodejs /usr/bin/node
Later edit
I found this explanation in the link you posted
There is a naming conflict with the node package (Amateur Packet Radio Node Program), and the nodejs binary has been renamed from node to nodejs. You'll need to symlink /usr/bin/node to /usr/bin/nodejs or you could uninstall the Amateur Packet Radio Node Program to avoid that conflict.
Later later edit
It's been a while since I answered this. Although the solution I posted up here worked for me several times, users have reported a few more solutions within the comments:
From @user229115
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
From AskUbuntu (user leftium)
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs
Solution 2:
I think this is it:
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
Using Debian alternatives.
Solution 3:
Apparently the solution differs between Ubuntu versions. Following worked for me on Ubuntu 13.10:
sudo apt-get install nodejs-legacy
HTH
Edit: Rule of thumb:
If you have installed nodejs
but are missing the /usr/bin/node
binary, then also install nodejs-legacy
. This just creates the missing softlink.
According to my tests, Ubuntu 17.10 and above already have the compatibility-softlink /usr/bin/node
in place after nodejs
is installed, so nodejs-legacy
is missing from these releases as it is no more needed.
Solution 4:
I have the same issue in Ubuntu 14.04.
I have installed "nodejs" and it's working, but only if I'm use command "nodejs". If I try to use "node" nothing happens.
I'm fixed this problem in next way:
-
Install nodejs-legacy
sudo apt-get install nodejs-legacy
After that, when I type "node" in command line I'm get an error message "/usr/sbin/node: No such file or directory"
-
Second, what I did, it's a symbolic link on "nodejs":
sudo ln -s /usr/bin/nodejs /usr/sbin/node