LaunchSchool - An Online School for Developers /

Blog

How to Install Ruby on Rails Development Environment – for Mac OS X

(Related article: How to Install Ruby on Rails for Linux (Ubuntu))

Step 1. Upgrade Your System to OS X Mavericks

Installing Ruby on Rails is simple, but unless you have an old Mac machine (a pre ‘08 model), you should seriously consider upgrading your system to OS X Mavericks (10.9). It comes with the latest improvements from Apple, and it’s completely free! You can follow this guide for this upgrade.

Step 2. Install XCode Command Line Developer Tools

We need to first install Apple’s XCode Command Line Developer Tools, so that we can use the build tools and utilities that come with it to build Ruby gem native extensions and install other system packages.

This used to be a lengthy process, but if you are on Mavericks, all you have to do is to run this command in your terminal:

1
xcode-select --install

After the installation, type

1
gcc --version

and if the response has something like Apple LLVM version 5.0, you are all set.

Step 3. Install Homebrew

Homebrew is the best package manager on Mac. If you are still using MacPorts, it’s time to start brewing! To install homebrew, use this one line installer:

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

After it finishes, type

1
which brew

you should see the response as /usr/local/bin/brew

Step 4. Install Ruby with RBENV

Your Mac already ships with Ruby (we used it to install homebrew in the last step). However, it’s still a good idea to use a Ruby version manager because:

  • the system Ruby is likely outdated and you may want to use the latest Ruby version to leverage the new features
  • you may need to work on multiple projects on different Ruby Versions

RVM and RBENV are the two leading Ruby version managers. I prefer RBENV because it’s a simpler and lighter weight solution, and together with bundler, it solves the project gemset problem in a more elegant way.

We can just use homebrew to install rbenv.

1
2
brew update
brew install rbenv ruby-build rbenv-gem-rehash

rbenv by itself only manages switching ruby versions. ruby-build and rbenv-gem-rehash are both rbenv plugins. ruby-build allows you to install rubies with rbenv and rbenv-gem-rehash automatically hashes new gems for you when they are installed. You can see here to learn more about rbenv plugins.

You need to initialize rbenv by adding this line in your ~/.bashrc file.

1
eval "$(rbenv init -)"

Now you are ready to install Ruby with rbenv. At the time of this writing, the latest stable Ruby version is 2.1.0, so let’s install that.

1
rbenv install 2.1.0-p0

Step 5. Install Git and Set Up Github Account

Git is the version control system of choice for the Ruby community. If you followed this guide, you should already have git installed as part of the XCode Command Line Developer Tools. You may also want to install git separately with homebrew for easier upgrading.

1
brew install git

Now tell git your name and email that it will use for your commits.

1
2
git config --global user.name "Your Name Here"
git config --global user.email "your_email@example.com"

Github is the leading platform for source code hosting and collaboration. If you don’t have an account yet, go ahead and sign up for one at https://github.com. Make sure you sign up with the same email address from the step above.

For easier authentication with Github when you push or pull code, follow this guide to set up ssh keys for your Mac.

Step 6. Create a New Rails Application

If you don’t have a directory to hold all your development projects yet, you can create that directory like below:

1
mkdir ~/projects

Now you can create a Rails project in that directory:

1
2
3
cd ~/projects
gem install rails
rails new name_of_your_new_app

Wait until the the last step finishes, and you just created your first Rails project! You can verify that you set up Rails by first starting the server

1
2
cd ~/projects/name_of_your_new_app
rails s

Now open up your browser and type in the address bar http://localhost:3000 and if you see a welcome page, your app is running locally.

Step 7. Set Up Sublime Text as Code Editor

If you already have an editor of choice, such as Vim or Emacs, you can skip this step. :) If you are not familiar with code editors, Sublime Text is an excellent choice and you can download it here.

After you install it, run the following command:

1
ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

and now you can simply type

1
subl .

in your Rails project directory to start coding.

The convention for Ruby programs is to use two spaces as indentation. You can follow Sublime Text 2 => Preferences => Settings - User and add these lines.

1
2
3
4
{
"tab_size": 2,
"translate_tabs_to_spaces": true
}

Optional Step 1. Use iTerm 2, zsh and oh-my-zsh to set up an awesome terminal

Download and Install iTerm 2. It comes with more features and is easier to customize than the built in Terminal.

Now it’s time to customize your terminal! Here are some of my preferences.

  • Under “General”, check “Copy to clipboard on selection”
  • Under “Profile” => “Colors”, click on “Load Presets”, then choose “Dark Background”
  • Under “Profile” => “Text”, change the font to one that you enjoy looking at. My favorite is 20pt Anonymous Pro with Anti-aliased. You have to download it first and install it into your Mac’s font book before you can use it
  • Under “Keys”, define a hotkey to hide/show the terminal window. This is much faster than having to Command+Tab through opened windows and find iTerm 2

Zsh is an alternative shell to the default bash shell that comes with Mac. It adds nice features such as smart tab completions, but what really sets it apart is its scriptability. Together with oh-my-zsh, an open source zsh configuration management framework, it becomes really easy to customize both the look and functionality of your terminal.

Your Mac already comes with zsh. To use zsh, go to iTerm 2 => Preferences => Profiles => General and in the “Command” section, select “Command”, and type /bin/zsh in the box after it. Now close your terminal and relaunch it, you should be on zsh!

Next, let’s install oh-my-zsh:

1
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

Now you can customize the ~/.zshrc file.

  • If you have your settings in ~/.bash_profile, you may want to copy them over to /.zshrc.
  • Find the plugins=(git) line and add more plugins. Here is the plugins I am using:
1
plugins=(git brew osx vagrant wd gem)

If you do not like the default theme, you can pick from one of the many themes that come with oh-my-zsh. You can see the list of themes here and here.

If you feel really adventurous, you can even build your own theme! Take a look at how themes are implemented, and copy/tweak/build one exactly to your taste!

Optional step 2. Install Postgresql as a production quality database

By default, Rails uses sqlite3 as the default development database. It’s a nice database but probably not one that you want to use in production. Postgresql is a solid, production quality relational database and works well with Rails. It’s generally a good idea to set up your local database to match the database on the production environment.

The easiest way to use Postgresql on Mac is to download and install the Postgres.app

With Postgresql running, add gem 'pg' to the Gemfile in your rails project and run bundle install to install the Postgresql Ruby driver. This RailsCast talks about how to set up with Postgres in detail. You can skip the “taps” part if you don’t already have data that needs to be migrated.

Congratulations!

This is it! You just made it to the end of our first rails tutorial, and have now set up your local Ruby on Rails development environment like a pro, now it’s time to start coding. :)