javascriptnode.jsubuntuserverside-javascript

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

  • 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