Set up a Mac for Ruby Dev
The SSD on my Air died this weekend, no backup.
This time when setting a new system up I took note of all the steps.
All the steps were tested on the latest Mac OS X 10.8.3 (latest).
Apple compiler toolchain
- Install XCode from App Store (~1.9 GB) https://itunes.apple.com/en/app/xcode/id497799835
- Install Command Line Tools (Preferences -> Downloads)
Homebrew
This is a package manager with packages described in ruby.
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew doctor
Read brew doctor
output and do what it says if something is wrong!
Some packages you will probably need for ruby dev:
brew install node wget qt4 curl-ca-bundle
Git
Git that comes with Mac is old. Install a better one from brew
.
brew install git
# Write settings to ~/.gitconfig
git config --global user.name '{YOUR NAME}'
git config --global user.email {YOUR EMAIL}
# a global git ignore file:
git config --global core.excludesfile '~/.gitignore'
echo '.DS_Store' >> ~/.gitignore
# add your IDE files to global config
echo '.idea/*' >> ~/.gitignore
# use keychain for storing passwords
git config --global credential.helper osxkeychain
# you might not see colors without this
git config --global color.ui true
# more useful settings: https://github.com/glebm/dotfiles/blob/master/.gitconfig
SCM Breeze shortcuts are great too.
RVM
Ruby version manager (install and auto-switch ruby and gems per-project).
brew install curl-ca-bundle
\curl -L https://get.rvm.io | bash -s head --ruby=2.0.0 --autolibs=enabled
Postgresql
brew install postgres
initdb /usr/local/var/postgres -E utf8
# load on boot:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
# load now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Now you can connect to it via psql console:
psql -h 127.0.0.1 postgres
Here is how you can create a user (from psql console):
CREATE USER zuigo WITH PASSWORD 'zuigo';
ALTER USER zuigo CREATEDB;
# To grant superuser
ALTER ROLE zuigo WITH SUPERUSER;
There is also a GUI pg manager helpful for troubleshooting issues http://www.pgadmin.org/download/macosx.php
MySQL
brew install mysql
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Now you can connect to it via mysql console:
mysql -uroot
Here is how you can create a user (from mysql console):
# For every host create a user (or use 'zuigo'@'%'):
CREATE USER 'zuigo'@'localhost' IDENTIFIED BY 'zuigo';
# Grant all privileges for DB names that start with "zuigo"
GRANT ALL PRIVILEGES ON `zuigo%`.* TO 'zuigo'@'localhost';
Redis
Great in-memory data structure store, persistent with expiry times, works with (z-)sets, arrays, hashes, and key-value.
brew install redis
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
ZSH
Mac OS X comes with an old bash
for a shell. zsh
is much better!
brew install zsh
sudo mv /etc/zshenv /etc/zprofile
cat /etc/shells | grep zsh || which zsh | sudo tee -a /etc/shells
chsh -s $(which zsh)
You'll also want all the magic provided by either zprezto
or oh-my-zsh
. See my dot files repo for details.
Advanced configuration
I have all my config files in git: https://github.com/glebm/dotfiles/
Then after installing zsh I just do:
rm ~/.gitconfig ~/.viminfo
git clone git@github.com:glebm/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install
That repo is specific to me (e.g. it has user.name set to Gleb Mazovetskiy in .gitconfig etc), but you can fork it or create your own from scratch.
Must-have apps
-
iTerm2 -- must have, proper terminal for Mac, graphical tmux
http://www.iterm2.com
-
Growl -- notifications centre, works with iterm, will tell you when
bundle update
is done! https://itunes.apple.com/en/app/growl/id467939042 - Notational Velocity -- great notes on hotkey (this is written using NV) http://notational.net protip: set data store location to a Dropbox folder
- Alfred -- spotlight replacement; uses the same index files as spotlight; fast and very powerful http://www.alfredapp.com/
Also, you can remap your Caps Lock in System Preferences -> Keyboard -> Modifier Keys.
Written by Gleb Mazovetskiy
Related protips
1 Response
I also created a whole new working Mac environment, and decided to use babushka for it. The cool thing about babushka is, that it is basically only one step to install everything I need to work on a new machine. And you can share the recipies.