A script to install basic development tools for node (git, node, gcc, pkg-config, etc)
Go to file
AJ ONeal 4ea01c4c42 don't include * in quotes 2018-07-26 20:51:20 +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 update installer examples 2018-06-14 21:10:05 +00:00
install.sh assume no dev tools by default 2018-07-26 20:38:51 +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 don't include * in quotes 2018-07-26 20:51:20 +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 |

Automated node.js installers for OS X and Ubuntu

node.js only (no dev tools)

# install node.js without development dependencies
curl -fsSL https://bit.ly/node-installer | bash -s -- --no-dev-deps

# using wget instead of curl (Ubuntu)
wget -nv https://bit.ly/node-installer -O - | bash -s -- --no-dev-deps

node.js + dev tools

Install node.js and basic development tools - git, node, gcc, pkg-config, etc

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

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

Note: bit.ly/node-installer simple redirects 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)

Options

Choosing a specific version

Latest

export NODEJS_VER=""

Exact

export NODEJS_VER="v10.2.1"

Latest of vX.Y.Z

export NODEJS_VER="v8.1"

Latest of vX.YY.Z

# latest of v8.11.x
export NODEJS_VER="v8.11"

Latest of vX.Y

export NODEJS_VER="v10"

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

NODEJS_VER=$(curl -fsSL https://nodejs.org/dist/index.tab | tail -n +2 | cut -f 1 | head -1 )
echo "The current node.js version is $NODEJS_VER"
BASE_VER="v10\\."
NODEJS_VER=$(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 $NODEJS_VER"

Choosing an install location

Just set BOTH NODE_PATH and NPM_CONFIG_PREFIX. The install path will be the preceding lib/node_modules (which you usually want to be the same as NPM_CONFIG_PREFIX anyway).

export NPM_CONFIG_PREFIX=/tmp/usr/local
export NODE_PATH=/tmp/usr/local/lib/node_modules

A more realistic example for a self-contained node app:

export NPM_CONFIG_PREFIX=/opt/my-app
export NODE_PATH=/opt/my-app/lib/node_modules
curl -fsSL https://bit.ly/node-installer -o ./node-installer.sh; bash ./node-installer.sh --dev-deps

If you want to add the install location to your PATH:

PATH=$PATH:/tmp/user/local/bin

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

Other things you should know

This is what gets installed with the dev dependencies:

  • rsync
  • curl
  • wget
  • git
  • xcode / brew / build-essential / pkg-config / gcc
  • node (including npm)
  • jshint

NOTE: If you're running a node.js server on 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.