I installed node with apt-get install nodejs. Then I installed npm with apt-get install npm. Now when I try to run express I get
$ express
/usr/bin/env: node: No such file or directory
How do I resolve this error?
There are two package in Ubuntu that have similar names, node and nodejs.
node does this,
Description-en: Amateur Packet Radio Node program. The node program accepts TCP/IP and packet radio network connections and presents users with an interface that allows them to make gateway connections to remote hosts using a variety of amateur radio protocols.
nodejs does this,
Description-en: Node.js event-based server-side javascript engine Node.js is similar in design to and influenced by systems like Ruby's Event Machine or Python's Twisted. It takes the event model a bit further - it presents the event loop as a language construct instead of as a library. Node.js is bundled with several useful libraries to handle server tasks : System, Events, Standard I/O, Modules, Timers, Child Processes, POSIX, HTTP, Multipart Parsing, TCP, DNS, Assert, Path, URL, Query Strings.
Fedora also follows a similar package naming scheme. Because of this, the binary in nodejs had to be renamed to nodejs from the original node. However, this isn't technically kosher: and most nodejs programs (and libraries installed with npm) assume that the node binary is node. If you want to get around this the easiest way is just symlink the two together. If you take this route, don't install the node package which handles the Amateur Packet Radio stuff.
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
Alternatively, in the case of node, I'd suggest using n. To do this, simply run npm install -g n. Then type n latest. Then you can apt-get --purge remove nodejs. There are other binary distro managers that even work from a shell script like nvm but I personally prefer n. Think of n like an apt for just one thing: the node binary which it installs to /usr/local/bin.
you should install nodejs-legacy package which have a link from /usr/bin/node to /usr/bin/nodejs
In my case it was because in my PATH environment variable, I had "~/progs/node/bin/" and the "~" does not seem to be resolved by env... replacing it with the real full path ("/home/myuser/node/bin") solved my problem.
do this in cmd
sudo apt-get install nodejs-legacy
chmod your folder 700 (optional)