Development Environment on OSX
19 Sep 2015
In this post I document the steps required to install various tools and environment to start development on OSX 10.10 (Yosemite). This is an evolving document.
Last updated: 20 Nov 2024
iTerm
Download iTerm
Homebrew
$ ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) "
When
$ brew upgrade
is issued, brew will update all the formulas.
To stop certain formulas from upgrading, do this
$ brew pin certainformula
GNU Stow
$ brew install stow
I use it for dotfiles sync as explained here
Emacs
$ brew update
$ brew install emacs --with-cocoa
# Symlink to Applications
$ ln -s /usr/local/Cellar/emacs/24.x/Emacs.app /Applications
Git
$ brew update
$ brew install git
Generate SSH Keys
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Ensure ssh-agent is enabled
$ eval " $( ssh-agent -s ) "
$ ssh-add ~/.ssh/id_rsa
# Copy
$ pbcopy < ~/.ssh/id_rsa.pub
# Paste in your github account if required
# Paste in your servers if required
RVM and Ruby
$ \c url -sSL https://get.rvm.io | bash
Optional
# Install ruby 2.2
$ rvm install 2.2
# Install bundle as a global gem
$ rvm @global do gem install bundler
Java
Download from Oracle’s website
# To set JAVA_HOME
$ export JAVA_HOME = ` /usr/libexec/java_home`
Autojump
# Pretty nifty directory navigation tool
$ brew install autojump
# Add the following to your .bash_profile(or equivalent)
[[ -s $( brew --prefix ) /etc/profile.d/autojump.sh ]] && . $( brew --prefix ) /etc/profile.d/autojump.sh
ZSH
$ sh -c " $( curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh) "
Browser Plugins
Adblock
Privacy Badger
HTTPS Everywhere
Mysql
# Install using brew
$ brew install mysql
# To run the server
$ mysql.server start
# To connect:
$ mysql -uroot
# To have launchd start mysql at login:
$ ln -sfv /usr/local/opt/mysql/* .plist ~/Library/LaunchAgents
# Then to load mysql now:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Maven
$ brew install maven
$ mvn -version
Composer
# Install composer in your pwd. Requires PHP.
$ curl -sS https://getcomposer.org/installer | php
# To use
$ php composer.phar
# Move it to a directory under PATH if you need it globally
$ mv composer.phar /usr/local/bin/composer
# Use it
$ composer
mcrypt
$ brew tap homebrew/php
$ brew install php55-mcrypt
Memcache
$ brew install libmemcached
$ brew install php55-memcached
# Run the server
$ memcached -d
Node and NPM
$ brew install node
# check
$ node -v
$ npm -v
# Upgrade node
$ brew update
$ brew upgrade node
Redis
$ brew update
$ brew install redis
# To have launchd start redis at login:
$ ln -sfv /usr/local/opt/redis/* .plist ~/Library/LaunchAgents
# Then to load redis now:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
# Or, if you don't want/need launchctl, you can just run:
$ redis-server /usr/local/etc/redis.conf
Mule ESB
You can use mule in conjunction with AnyPoint IDE(Eclipse based) or as standalone runtime, which I prefer.
Download the community edition standalone from https://developer.mulesoft.com/download-mule-esb-runtime
Extract the zip and probably place it to a dir where you normally put software. For me it is ~/installs
$ cd <where_you_unzipped_mule>
# To start mule
$ ./bin/mule
# To start mule as daemeon
$ ./bin/mule start
# To stop|restart
$ ./bin/mule stop|restart
To deploy applications to the standalone mule runtime, drop your project’s zip file to $MULE_HOME/apps and start mule
Groovy
$ brew update
$ brew install groovy
# Set GROOVY_HOME
$ export GROOVY_HOME = /usr/local/opt/groovy/libexec
Grails
$ brew update
$ brew install grails
# Set GRAILS_HOME
$ export GRAILS_HOME = /usr/local/opt/grails/libexec
Tree
Tree is a command line utility to view content of a dir in a tree like structure
$ brew update
$ brew install tree
Mongo DB
$ brew update
$ brew install mongodb
Golang
# Recommended: $HOME/go. I use $HOME/code/go
$ export GOPATH = $HOME /code/go
$ export PATH = $PATH :$GOPATH /bin
# Put the above in ~/.zshrc or ~/.bashrc or whatever suits you
$ mkdir -p $GOPATH $GOPATH /src $GOPATH /pkg $GOPATH /bin
$ brew update
$ brew install go
# Alternatively, download from go website and install
$ go version
Hat Tip
Upgrade when not using brew
Go to https://go.dev/doc/install , download the appropriate package and run the installer. This will take care of deleting the old install and upgrading
Gradle
$ brew install gradle
Pip
$ sudo easy_install pip
AWSCLI
$ pip install awscli
# If there is an error "Uninstalling a distutils installed project (six)..." on El Kapitan then use the following command
$ sudo pip install awscli --ignore-installed six
RethinkDB
$ brew update && brew install rethinkdb
ssh-copy-id
$ brew update && brew install ssh-copy-id
python3
$ brew update && brew install python3
$ brew update && brew install fswatch
Yarn
$ brew update && brew install yarn
NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
Ansible
$ sudo easy_install pip
$ sudo pip install ansible
Wercker
$ brew tap wercker/wercker
$ brew install wercker-cli