# Setting up the Ruby dev environment on Mavericks ## Why would I want to do that? - You want to run guard - You want use Sublime plugins (like RSpec or Guard plugins) ## 1. Installing `brew` [Brew](http://brew.sh/) aka Homebrew is a package management system for Mac OSX. Open up the Mac Terminal and run this command to install brew on your mac: ``` ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" ``` ## 2. Install ruby through `rvm` Open a terminal window. ``` \curl -sSL https://get.rvm.io | bash -s stable --ruby ``` Close the current terminal window and open a new one. ``` rvm list # shows you all the versions of ruby installed on your computer ``` ``` rvm -h # shows you the help menu with all the commands you can run ``` # 3. Install Ruby 2.1.1 and set it as the default version ``` # Install ruby version 2.1.1 rvm install 2.1.1 # this will take a while... rvm is downloading and installing ruby # Tell rvm to use 2.1.1 as the default version of ruby rvm --default use 2.1.1 # Check that you are using the latest version of ruby ruby -v # Should show ruby 2.1.1 ``` Check out this article for a list of rbenv commands: http://cbednarski.com/articles/installing-ruby/ ## 4. Install rails Install rails on your system so you can create new rails projects. ``` gem install rails ``` Rails is now installed, but in order for us to use the rails executable, we need to tell rbenv to see it: ``` rbenv rehash ``` And now we can verify Rails is installed: ``` rails -v # Rails 4.1.1 ``` ## 5. Install the Postgres.app "The easiest way to run Postgres on your Mac" http://postgresapp.com/ ## 6. Install the `pg` gem Here's how to install the pg gem with Postgres.app. http://stackoverflow.com/questions/20224483/cannot-install-pg-gem-in-mavericks-with-postgres-app ``` gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config ``` ## 7. Install the command line developer tools ### If you have XCode < 5.1.1 The nokogiri gem needs these. See here for details: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/ ``` xcode-select --install ``` ### If you have XCode > 5.1.1 Follow these instructions: http://stackoverflow.com/questions/23260748/manual-install-of-xcode-command-line-tools-not-working 1. Open XCode 2. Click on Xcode > Open Developer Tools > More Developers Tools This will take you to the Downloads for Apple Developers web site. Use your AppStore Id to login. 3. Download Command Line Tools for your Mac OS X version. (Probably Mavericks April / March 2014). ![http://monicao.s3.amazonaws.com/gist_images/Screen%20Shot%202014-07-01%20at%2012.42.06%20PM.png](http://monicao.s3.amazonaws.com/gist_images/Screen%20Shot%202014-07-01%20at%2012.42.06%20PM.png) ### See if it worked ``` gem install nokogiri ``` ## 8. Install the gems for a Rails project ``` cd /Users/monica/lighthouse/laser_shark bundle install ``` Follow the other setup instructions for that rails app. For `laser_shark`, you will have to edit your `/etc/hosts`, for example. ## 9. Change `database.yml` In config/database.yml, make sure you have the following settings. Make sure you have the `host`, the password is blank, and the username is set to your computer's username. If you are not sure what your computer's username is, try running `whoami` in the terminal. ``` development: adapter: postgresql database: your_project_development host: localhost encoding: unicode pool: 5 test: adapter: postgresql database: your_project_test host: localhost encoding: unicode pool: 5 ``` Here's my database.yml for a rails project called hooligans ``` development: adapter: postgresql database: hooligans_development host: localhost encoding: unicode pool: 5 ``` To check if this works, see if you can create the database. ``` bin/rake db:create ``` ## Troubleshooting ### Could not connect to server: Connection refused If you see this error, make sure Postgres.app is started. You should see an elephant icon in your mac's top bar. ``` SYS:laser_shark SYS$ bin/rake db:create could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" (fe80::1) and accepting TCP/IP connections on port 5432? /Users/SYS/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/activerecord-4.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:881:in `initialize' ``` ### XCode: Can't install software because it's not currently available on your computer ![http://monicao.s3.amazonaws.com/gist_images/Screen%20Shot%202014-07-01%20at%2012.37.08%20PM.png](http://monicao.s3.amazonaws.com/gist_images/Screen%20Shot%202014-07-01%20at%2012.37.08%20PM.png) You probably have XCode 5.1.1 or higher and tried to install the command line tools via command line. See Install the command line developer tools section above. ## Help Improve this I wrote this down from memory. If any of the steps here don't work, please fork this gist, fix the issue and share with the class.