My typical dev env - checklist
This is my typical dev environment (a bit of Ruby and a bit of pure front-end stuff) and below is a list I follow when I set it up.
XCode + Command line tools
I think XCode is not necessarily evil and it's good to have (especially if you need to test on iOS). Now the command line tools come with the basic XCode install yay! Install XCode from the App Store. It over 2GB, so keep calm and carry on with the rest of the list :)
Homebrew
Brew is a great package manager for OS X - and a must have
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
$ brew update
Git
Now that we have brew it is super easy to install git:
$ brew install git
Node and npm
Installing Node is easy with Brew, and happy days - Node comes with NPM out of the box, so no more to do here but
$ brew install node
Grunt client
Next is the JavaScript task runner - Grunt:
$ npm install -g grunt-cli
Bower
Install this awesome front-end dependency manager via NPM:
$ npm install -g bower
Rbenv
Rbenv is a must to have if you work with Ruby and want to keep your Ruby versions nicely managed.
Installation
$ brew install rbenv ruby-build
Add this line to your ~/.profile
file
eval "$(rbenv init - --no-rehash)"
Ruby
Install the Ruby version you need using Rbenv!
Get a list of all available ruby builds:
$ rbenv install -l
Install latest stable version globally
$ rbenv install 2.1.1
$ rbenv global 2.1.1
$ rbenv rehash
PS: Don't forget to rbenv rehash
every now and again!
Bundler
Let's get bundler, the ultimate Ruby gem manager:
$ gem install bundler
$ rbenv rehash
Wrapping it up
This set up lets me work with pure Ruby, Ruby on Rails just as well as NodeJS based JavaScript projects, whilst being able to easily maintain the tools I use along the way thanks to gem
and package
architecture and the great open source effort behind them.
Of course a dev env isn't fully set up without a good code editor :) Here is how I normally install Sublime Text 3 Beta:
https://coderwall.com/p/ekwjca
Enjoy!
Written by Robert Pataki
Related protips
2 Responses
You should look into using Vagrant for your dev environments http://www.vagrantup.com/
Thanks @lsaffie, Vagrant is another great one! I have used it a few times, but it's not part of my typical set up, hence I didn't mention it.