While my PS3 downloads Heavy Rain demo I want to take a moment to write about my recent discovery:
homebrew. Homebrew is yet another package manager for os x, but it is ruby based (which is immensely cool, for all the lovers of esthetics), keeps /usr and /usr/local user-space unpolluted with crap, and is meant to be fast and simple (aren't they all?). There is something so special about homebrew (which I didn't even really used) and its idea that forced me to completely reinstall my macbook to get rid of all the macports/fink/leopard legacy. But back to the subject.
To install homebrew, you need to have Xcode installed. You can get it from
http://developer.apple.com/tools/xcode/ or your Snow Leopard installation dvd. To summarize the instruction on homebrew page you need to run this commands in terminal:
sudo chown -R `whoami` /usr/local
curl -L http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C /usr/local
If you don't have '/usr/local', just run 'sudo mkdir /usr/local' and repeat the steps above. Now, people will argue that that setting user ownership on /usr/local is not secure, but it's not really true. You can always change it, and it doesn't do anything with admin permissions, where the real security lies. After you do this you need to set your
PATH environment variable to begin with /usr/local/bin.
for bash:
export PATH=/usr/local/bin:$PATH
for csh/tcsh:
setenv PATH /usr/local/bin:$PATH
You probably want to add it to your shell profile, so do
cat 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
or
cat 'setenv PATH /usr/local/bin:$PATH' >> ~/.tcshrc
From this moment I will assume that you are a bash user (but it doesn't really matter), which is default shell in os x:
Now that your homebrew is up to date go ahead and install ruby:
This will install ruby 1.9 on your system, and it will be neatly placed in /usr/local/Cellar/ruby directory. Rubygems are installed together with it but you want to update them before you continue (make sure you have set your PATH environment to begin with '/usr/local/bin' at this point, it is important).
See, you don't even need to run it with sudo because you are using homebrew! Isn't it cool? Now that your gems are fresh, you can continue with rubyonrails.org
instructions:
gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
However this is incomplete, you need to install rake and you probably want to have
sqlite3 gem installed to, so go ahead and run this after first set of gems is installed:
gem install sqlite3-ruby rake
Who put "ruby" in the name of a gem? It baffles me! But let's continue. They way things are in the moment when I write this, rails 3.0 requires rack-mount to be version "0.4.0" so go ahead and install that version too, if the "install rails" fails for you.
gem install rack-mount -v=0.4.0
Now, because of homebrew specifics, this will not create a necessary symlink in /usr/local/bin for rails that are put in your ruby directory in Cellar, so let's do it ourselves:
cd /usr/local && ln -s ../Cellar/ruby/1.9.1-p378/bin/rails bin/rails
By the time you read this the version of your ruby can be different, so just run
To see what version is it and where it is. If you want to be cool you can even do something like this:
cd /usr/local && ln -s ../Cellar/ruby/`brew info ruby|grep "ruby "| awk '{print $2}'`/bin/rails bin/rails
And it will work for any current version (as long as it is only one installed). At this point you are all set to go. Do your regular routine, like:
rails ~/myapp
cd ~/myapp
./script/rails generate Post name:string
rake db:migrate
./script/rails server
EDIT: as of now (2010/02/17) rails 3.0 are no longer broken, so this should produce a working setup. Just run
if you followed this instructions before and it didn't work.