Home Linux Community Community Blogs General Linux Installing Ruby and Gems for Vagrant/Opscode/Chef on OSX 10.6.6

Installing Ruby and Gems for Vagrant/Opscode/Chef on OSX 10.6.6

So, I just finished a course in London by these guys ( which was awesome.

They have a really great platform that allows you to manage your infrastructure as code, by writing 'recipes' and uploading them into 'cookbooks' on the managed platform - defining amongst many other things  'this is what I want my sever to look like', and "these are the steps I need to take to make this environment 100% reproduceable with no deviation from its first incarnation to its last".

You can then run one-liners to run up your entire infrastructure either locally with a tool like Vagrant or on a cloud provider like AWS EC2 and Rackspace. - If you havent already, grab yourself an account and give it a try, you can run up to 5 clients/nodes at no monthly cost.

As you may have guessed this relies on a successful install of Ruby and Ruby gems and Fog (amongst other gems) on a local machine or designated management server, to allow you to communicate with the platform.

This worked really well on OSX 10.5, but I had really bad problems after getting a newer Mac with 10.6.6 on it. I found that by default when I tried to install Ruby the newer OSX 10.6.6 compiler was automatically detecting that it was capable of comiling as x84_64, so was downloading/compiling/installing a 64bit version of Ruby.

I tried to do a fat Ruby install of that both supported x86_64 and i386 but this didnt seem to work properly in 10.6.6 at the moment.

In itself this wasnt a problem until I came to use some of the gems that I need to communicate with the Opscode platform, I still havent confirmed if this is due to them only working on i386 version of Ruby or some issue with running different architectures under RVM. However I found that some of the gems failed to work on the x86_64 version of Ruby, even if I then installed a 32bit version, I'm guessing this is something to do with symlinking inside RVM.

Anyway, I thought some other people might find the steps I had to take helpful and hopefully save them wasted time.

To start with I installed the latest version of Xcode available on the Apple Developer site.

then I installed Git and grabbed RVM which allows me to run multiple version of Ruby on the same machine.

I grabbed it from here, by running the following:

bash < <( curl )

then I added this to my .bashrc

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

and reloaded Terminal

Then I grabbed the iconv gem and made sure it was available for one of the later versions of Ruby.

rvm package install iconv

Once I had done this I was ready to actually install a version of Ruby that was happy to run all of the gems I needed for Chef and Vagrant. As you will see I did this by forcing the architecture of the Ruby install to be i386

rvm_archflags="-arch i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" rvm install 1.9.2 -C --with-iconv-dir=$HOME/.rvm/usr --patch osx-arch-fix

If I didnt include iconv, it appeared that the build had worked, until I came to use "knife", which gave me a horrible stack trace about it not being able to solve some things ruby was unhappy about.

Once I had finished with this a quick "rvm list" showed me that the 32bit install of ruby was successful =>ruby-1.9.2-p136 [ i386 ]

Then I installed Rubygems 1.3.7 and ran "gem install iconv" and "gem install chef"


"gem install net-ssh net-ssh-multi fog highline rb-appscript gem-man virtualbox vagrant"

So from this point on, assuming you have an Opscode account and all of the above, you can start doing stuff like:

"knife ec2 server create -i ami-id -G AWSdefaultsecuritygroup -Z AWSZONE --region AWSREGION -f m1.instancetype -S <ec2account> -I ec2account.pem -x ubuntu"

Or bring up a test environment following the simple instructions:

$ vagrant box add base
$ vagrant init
$ vagrant up
$ vagrant ssh

Loads more really good info available at

Hope you find it useful....



Subscribe to Comments Feed

Upcoming Linux Foundation Courses

  1. LFD211 Introduction to Linux for Developers
    08 Dec » 09 Dec - Virtual
  2. LFS220 Linux System Administration
    08 Dec » 11 Dec - Virtual
  3. LFS520 OpenStack Cloud Architecture and Deployment
    08 Dec » 11 Dec - Virtual

View All Upcoming Courses

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board