public
Last active

Installing Ruby 1.9.3 & gem dependencies on Mac OS X Lion

  • Download Gist
1_install_transcript.sh
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
# Install Xcode from the Mac App Store
open /Applications/Install\ Xcode.app # complete the installation
 
# Install homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
 
# Install RVM
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
 
# Install some libraries to link ruby and gems against
brew install libevent libksba libidn
 
# Install ruby 1.9.3 by compiling with clang
rvm install 1.9.3 --with-gcc=clang
rvm use ruby-1.9.3 # add --default if you like
gem install bundler # add --pre for the new hotness
 
# Ruby 1.9.3-p0 builds fine with clang, but many database drivers
# and gems with native extensions don't build properly under clang/llvm, so...
# Build and install gcc-4.2 Apple build 5666.3 alongside clang/llvm-gcc! (this takes ~20 minutes)
# Thanks to http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42
brew install https://raw.github.com/gist/1587643/gcc42.rb
 
# ...and try building any troublesome gems using gcc-4.2 instead:
# CC=/usr/bin/gcc-4.2 gem install some-db-driver, etc.
gcc42.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
require 'formula'
 
class Gcc42 < Formula
url 'http://opensource.apple.com/tarballs/gcc/gcc-5666.3.tar.gz'
homepage 'http://opensource.apple.com/source/gcc/gcc-5666.3'
md5 '188c7769db5c898922b0976fab148a63'
keg_only "You must install it manually, see caveats above."
 
def install
build_path = Pathname.new(File.join(pwd, "build"))
mkdir_p %w[build/obj build/dst build/sym]
system "/usr/bin/gnumake install RC_OS=macos RC_ARCHS='i386 x86_64' TARGETS='i386 x86_64' SRCROOT=#{pwd} OBJROOT=#{build_path+"obj"} DSTROOT=#{build_path+"dst"} SYMROOT=#{build_path+"sym"}"
system "ditto #{build_path+"dst"} #{prefix+"build/dst"}"
end
def caveats
<<-FUN.undent
To install gcc-4.2 run:
#{Tty.blue}sudo ditto #{prefix+"build/dst"} /#{Tty.reset}
FUN
end
 
def test
system "/usr/bin/gcc-4.2 --version"
end
end

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.