Mac setup for basic dev tools using brew.
The first thing we want to do is make sure that you own /usr/local/ and everything under it, so you don't need sudo rights to install anything.
Create it
Check to see if you have a /usr/local directory. If /usr/local doesn't exist, let's create it.
$ sudo mkdir /usr/local
Take ownership
Set ownership to you so you can rw without sudo.
$ sudo chown -R $USER:admin /usr/local
Install Homebrew
Skip this step if you already have homebrew installed.
To install homebrew, run the command below in your terminal. It should not ask you for sudo. If it does, check the help documentation. Changing the ownership and group over should have removed this need.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Update homebrew
Before we install any formulae, let's update Homebrew.
$ brew doctor
$ brew update
$ brew doctor
Add a few taps
Now we'll add a few more repositories for installing brew formulae.
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap caskroom/cask
$ brew install caskroom/cask/brew-cask
The instructions outlined below come from this gist.
$ brew install node --without-npm
$ echo prefix=~/.node >> ~/.npmrc
$ curl -L https://www.npmjs.com/install.sh | sh
The goal is to remove the dependency on sudo. We'll need to list out what packages you already have globally so we can reinstall them.
1. Find what global packages you have
$ cd /usr/local/lib/node_modules
$ ls -la
Write all of these down so can reinstall them.
2. Remove all existing node and NPM directories.
$ rm -rf ~/.npm
$ rm -rf ~/.node
$ rm -rf ~/.cache
$ rm -rf ~/node_modules
$ rm -rf /usr/local/lib/node_modules
3. Uninstall, then reinstall node & NPM
$ brew uninstall node
$ brew install node --without-npm
$ echo prefix=~/.node >> ~/.npmrc
$ curl -L https://www.npmjs.com/install.sh | sh
4. Reinstall your global packages
$ npm install -g <package> <package> <package> etc.
Now we'll update your PATH to include the directories you need
Edit your ~/.bash_profile
Look for your PATH statement, and make sure it includes the following paths:
export PATH="$PATH:/usr/local:/usr/local/bin:/usr/local/sbin"
export PATH="$HOME/.node/bin:$PATH"
export NODE_PATH="/usr/local/lib/node_modules:${NODE_PATH}"
Now restart your terminal.