A script to install basic development tools for node (git, node, gcc, pkg-config, etc)
Go to file
AJ ONeal 689fa58531 silence unimportant errors 2019-04-04 06:05:25 +00:00
.gitignore Initial commit 2014-12-21 17:10:33 -07:00
LICENSE Initial commit 2014-12-21 17:10:33 -07:00
README.md remove trailing / 2018-09-10 08:21:38 +00:00
install.sh silence unimportant errors 2019-04-04 06:05:25 +00:00
setup-deps-mavericks.bash Update setup-deps-mavericks.bash 2017-05-25 11:15:33 -06:00
setup-deps-ubuntu.bash Update setup-deps-ubuntu.bash to use portable `sudo_cmd` syntax 2017-09-04 13:35:16 -06:00
setup-min.sh update urls 2017-11-03 14:51:47 -06:00
setup-node-mavericks.bash only sudo as fallback, use mktemp -d 2018-06-23 16:29:13 -06:00
setup-node-ubuntu.bash use better tmp dir 2018-07-26 22:07:02 +00:00
setup-raspbian.sh Create setup-raspbian.sh 2015-02-05 09:33:10 -07:00
setup.bash merged old and new 2017-11-06 13:20:05 -07:00

README.md

Easy Install node.js

| Sponsored by ppl |

Simple node.js installer for macOS and Linux

QuickStart

curl -fsL bit.ly/node-installer | bash

Note: bit.ly/node-installer is a redirect to https://git.coolaj86.com/coolaj86/node-installer.sh/raw/master/install.sh

Screencast

How to Setup a VPS for node.js Development - (3:06 installing node.js)

Installer Options

  • version
  • install location
  • tools for building native modules

Choose Version

The latest version of node is installed by default.

You can choose a specific version by defining NODE_VERSION in the format vX, vX.Y, or v.X.Y.Z:

NODE_VERSION=v10

Usage:

export NODE_VERSION=v10.10
curl -fsSL https://bit.ly/node-installer | bash

Location

By default node will be installed to /usr/local, without root if possible.

You can choose a specific location by setting both NPM_CONFIG_PREFIX and NODE_PATH:

export NPM_CONFIG_PREFIX=$HOME/.local
export NODE_PATH=$NPM_CONFIG_PREFIX/lib/node_modules
curl -fsSL https://bit.ly/node-installer | bash

If you want to add the install location to your PATH, add /bin to the custom location used above and append it like so:

PATH=$PATH:$HOME/.local/bin

Development Tools

If you plan on building or creating native node modules, you'll want to install gcc, pgk-config, and a few other required tools and niceties.

In fact, it's fairly common for modules to have both native module and pure js dependencies, so you'll probably want (or need) to install these even if you don't plan to use them directly.

  • curl & wget
  • git
  • rsync
  • xcode, brew (on macOS), build-essential (Linux)
  • gcc, pkg-config
  • pkg-config
  • node.js, jshint

Pass --dev-deps to the installer script and it will use either brew (on macOS) or apt (on Linux) to install the development tools.

curl -fsSL https://bit.ly/node-installer | bash -s -- --dev-deps

Or, if you don't have curl installed yet you can use wget:

wget -nv https://bit.ly/node-installer -O - | bash -s -- --dev-deps

Securing your server

If you're running a node.js server on anything with a public ip address (an "edge" server), I'd highly recommend that you also install fail2ban to secure ssh - especially if you haven't switched your server to use key-only authentication (which you should also do).

See The 15-Minute Guide to Secure VPS Access (for the Semi-Paranoid)

Notes

Apple OS X

First you need to Install XCode Command Line Tools

xcode-select --install

Then you need to Accept the XCode License by running any command installed by Xcode with sudo. We'll use git.

sudo git --version

You can scroll to the bottom by hitting shift+G (capital G).

Type agree and hit enter to accept the license.

Now you can install node.js

curl -fsSL https://bit.ly/node-installer -o /tmp/node-installer.sh; bash /tmp/node-installer.sh --dev-deps

TODO: Make it easier to accepting the license (automatic?)

Ubuntu Linux

wget -nv https://bit.ly/node-installer -O /tmp/node-installer.sh; bash /tmp/node-installer.sh --dev-deps

Automatic Version Detection

Fun FYI, here's how the latest version is determined:

NODE_VERSION=$(curl -fsSL https://nodejs.org/dist/index.tab | tail -n +2 | cut -f 1 | head -1 )
echo "The current node.js version is $NODE_VERSION"
BASE_VER="v10\\."
NODE_VERSION=$(curl -fsSL https://nodejs.org/dist/index.tab | tail -n +2 | cut -f 1 | grep $BASE_VER | head -1 )
echo "Latest node.js $BASE_VER is $NODE_VERSION"