Skip to end of metadata
Go to start of metadata




This page contains information that is outdated for Chef 11. See the chef and erchef repositories for more information.


This document is focused on users who wish to get the latest development version of Chef installed for testing and development, or for the latest and greatest features that haven't been officially released yet.

Developers who wish to contribute to the project are encouraged to read the README.rdoc in the GitHub repository.

Each released version of Chef is tagged in the Git Repository. You can work with a previous version's code by checking out the tag.


Version Numbering Style
We follow Linux kernel-style versioning. If the patch-level version is odd, it's a 'dev' release, as installing from HEAD is certainly 'dev'.


First, you'll want to designate a system for development and deployment. This is the place where you'll clone the repository and create the gems. It can be your local workstation, or it can be the Chef Server itself.

  • Git - the source is on GitHub, so you'll need to have Git installed for your platform.
  • RubyGems - we have Rake tasks for generating and installing the gems, and these instructions should work anywhere with RubyGems. We recommend installing RubyGems from source.
  • Rake - we like Rake, and use it liberally, install the rake gem.
  • RSpec - we do specs in rspec, install the rspec gem v 1.3.1. v2.0.0 does not work with our current testsuite.
  • Cucumber - we do feature tests with cucumber, install the cucumber gem.
  • Gemcutter and Jeweler - we use jeweler for gemspec generation and may want to push to gemcutter, install these gems.

When installing the gems that are built from these instructions and using the Installing Chef Server using Chef Solo on Chef Server or Chef Client systems, other dependencies are handled as well such as CouchDB, RabbitMQ and Java.

You can also install the these for a Chef Server manually.

Install RubyGem Development Requirements

Some other gems are required to build the gems, but are automatically installed when we use rake install below. If you want to have them available first:

Install Additional Gem Building Requirements
Ubuntu Git Package

Ubuntu's git package to actually get usable git binaries installed is 'git-core', not 'git'.

Don't need RDoc and Ri?

By default, Gems install with the RDoc and Ri documentation available. You can disable this for gems you install by adding "gem: --no-rdoc --no-ri" to ~/.gemrc. This will save time on installation, too.

Git Repositories

Clone the ohai and chef repositories fresh from github. If you want the latest and greatest from Chef, you probably want the same from Ohai. You'll also need the Opscode mixlibs which are used in Chef and Ohai.

Clone Git Repositories

Installing the Gems

We're going to install the gems from the repositories checked out above. Each of these has gem dependencies that build on each other. This is the order which you should install the gems.

In each rake install, the respective gem was generated. We recommend setting up an internal RubyGems server in your environment to host the development gems, so you don't have to copy them manually to client systems for testing. Opscode provides a gems::server recipe that will help you set up a RubyGems server.

Install mixlibs

Ohai and Chef use some "mixin" libraries that Opscode wrote. We need to install these first or the Ohai and Chef gems will fail to build.

Install mixlib components

Install Ohai

Ohai needs to be installed as well so the Chef gems can be built.

Install Ohai

Install Client

For a chef-client, just install the chef gem, it provides the binaries and code needed to run Chef.

Install Chef

Install gecode

On Ubuntu lucid, maverick, or Debian lenny release, you can install gecode deb package from the Opscode APT repository.

Add the Opscode APT Repository

Create /etc/apt/sources.list.d/opscode.list.



If you would like to be able to download source packages, add an additional identical line, but change deb to deb-src line.

You can copy and paste these examples to create the necessary sources.list entry:

Ubuntu for Chef 0.10.x

Debian users will likely need to run 'apt-get install sudo wget lsb-release' as root before pasting the examples.

Add the GPG Key and Update Index

Before you install the packages, make sure you add the Opscode GPG key to apt.

Issues downloading from

If you get an error when trying to download the key that states that the "keyserver timed out", try downloading the key directly from our apt repository instead:

Afterwards you'll also want to run this command again:

Now, we update apt-get with the newly added Opscode repository:

Installing the opscode-keyring package will keep the key up-to-date:

Upgrade Existing Packages

To ensure you are using the latest versions of libraries that chef depends on, you may wish to update your existing packages:

Install deb package

Build and Install from Source

Install Server

If you are not using a RubyGems server, you'll want to install the Chef Server gems.

Gemcutter jeweler are also prerequisites to do a rake install for the server. So before you do the rake install for the server:

Install Gemcutter Jeweler

Then you can install the server:

Install Chef Server

Configure Chef

The Installing Chef Server Manually procedures can be used to get the server configured. If you're planning to run systems on the development version, we strongly recommend a RubyGems server with Chef and all the dependencies available to ease this process. Or, if you're using Amazon EC2, build an AMI with the gems installed.






Managing Chef


  • None
  1. Dec 20, 2009

    Looks like gemcutter jeweler are also prerequisites to do a rake install for the server. Got the following message:

    So before you do the rake install for the server:

  2. Nov 27, 2010

    As of 2010-11-27 mixlib requires 'spec/rake/spectask' in some Rakefiles, which is not available in rspec 2 anymore.

    So if you get any errors about rake being unable to load that file, try installing rspec like this:

    gem install --version '<2' rspec
  3. May 30, 2013

    An update would be appreciate ...

    There might be a lack of dependencies version (eg : rspec , but i think rake too and the "rake install" of mixlib-XXX doesn't work)

    1. Jun 10, 2013

      Sorry, this is outdated information, and I don't know when/if we'll get around to updating this specific page. See the chef (client) or erchef (server) repos for what should be current instructions. If you need help, try the chef-dev mailing list and #chef-hacking IRC channel.