Installing node.js on Mac OSX or Linux is very simple. You can download a installer for OSX or packages for Linux, but I like to use nvm to manage all the versions installed in the system.
nvm stands for node version manager and is similar in concept to Ruby’s rvm.
You can easily install nvm running a one liner from the command line.
curl https://raw.github.com/creationix/nvm/master/install.sh | sh
Check out the documentation on the nvm site
Why to use a version manager
As I mentioned before node development happens at light speed and you may be working in multiple projects at the same time, each one having dependencies on different npm versions.
Even if you are only working on a single project, nvm comes handy when it’s time to upgrade to a newer version.
It also makes the upgrade, install and un-install versions a simple one liner.
To install a new version you can simple run the install command followed by the version number you want to install
nvm install v0.10.26
Notice that the version number starts with a lower case v
To list all installed versions in the system use the list command.
In my system this is what you can see at the moment.
nvm ls v0.10.21 v0.8.7 current: v0.10.21 current -> 0.10 (-> v0.10.21) default -> 0.10.21 (-> v0.10.21)
To switch the version active in that terminal window run the use command
nvm use 0.8.7 Now using node v0.8.7
You may have noticed that to switch version the version number is missing the lower case v
Of course, the most helpful of all commands is the help command
nvm --help Node Version Manager Usage: nvm help Show this message nvm install <version> Download and install a <version> nvm uninstall <version> Uninstall a version nvm use <version> Modify PATH to use <version> nvm run <version> [<args>] Run <version> with <args> as arguments nvm ls List installed versions nvm ls <version> List versions matching a given description nvm deactivate Undo effects of NVM on current shell nvm alias [<pattern>] Show all aliases beginning with <pattern> nvm alias <name> <version> Set an alias named <name> pointing to <version> nvm unalias <name> Deletes the alias named <name> nvm copy-packages <version> Install global NPM packages contained in <version> to current version Example: nvm install v0.4.12 Install a specific version number nvm use 0.2 Use the latest available 0.2.x release nvm run 0.4.12 myApp.js Run myApp.js using node v0.4.12 nvm alias default 0.4 Auto use the latest installed v0.4.x version
Alternatives to nvm.
n is an alternative to nvm in case you want to try it. I personally find nvm easy to use and straightforward.