A Chef Cookbook that installs Ruby.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
attributes
recipes
spec
.gitignore
Berksfile
Berksfile.lock
Gemfile
Gemfile.lock
README.mdown
metadata.rb

README.mdown

chef_ruby

Installs Ruby 1.9.x or 2.0.x from source.

Acknowledgements

RVM in conjunction with Chef is shit.

Cookbook Requirements

  • apt
  • build-essential

Attributes

  • default[:chef_ruby][:version] = "2.0.0-p247": string containing the ruby version you want to install.
  • default[:chef_ruby][:rubygems][:version] = "2.0.6": string containing the rubygems version you want to install.
  • default[:chef_ruby][:checksum] = '3e...d3': checksum of the Ruby tarball.
  • default[:chef_ruby][:rubygems][:checksum] = '36...39': checksum of the RubyGems tarball.
  • default[:chef_ruby][:prefix] = '/usr': configure prefix path for Ruby.
  • default[:chef_ruby][:make_opts] = '-j10': make options for building Ruby.

You can update the tarball checksums on OS X using shasum -a 256 followed by the path of the tarballs. Or, alternatively, use Curl as follows.

curl http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | shasum -a 256
curl http://http://production.cf.rubygems.org/rubygems/rubygems-2.0.6.tgz | shasum -a 256

Recipes

  • default: installs Ruby from source.

Usage

When setting up a system for the first time, Ohai will profile it and then store the ruby directory as /opt/chef/embedded/lib/ruby. This attribute (normally referenced in cookbooks as languages[:ruby][:gems_dir]) does not get reset automatically when a new Ruby is installed. The default recipe tells Ohai to reload its attributes. Adding this block to any recipe that uses the attribute languages[:ruby][:gems_dir]; then, whenever Ohai reloads its attributes, your cookbook will also reload its attributes.

ruby_block "reload_ruby" do
  block do
    node.load_attribute_by_short_filename('<filename of attributes, eg default>', '<name of cookbook that contains the attributes>')
  end

  action :nothing
  subscribes :create, "ohai[reload]", :immediately
end

Legal

This cookbook was originally written by Carlo Zottmann but he seems to have stopped maintaining it. Now it is maintained by Lytro.