Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


ruby_pkg (5) Versions 0.2.0

Builds a ruby package using ruby_build and fpm

cookbook 'ruby_pkg', '= 0.2.0', :supermarket
cookbook 'ruby_pkg', '= 0.2.0'
knife supermarket install ruby_pkg
knife supermarket download ruby_pkg
Quality -%


Build Status
Dependency Status

Table of Contents


A Chef cookbook with knife-solo and Vagrant setups for building and packaging a specified Ruby version.


Should work on all Debian based Linux distributions. Support for some other platforms (that ruby_build and fpm support) is planned. Please open an issue or pull request if interested.

Requires ruby_build and fpm-tng community cookbooks.


This cookbook is intended to be used with the included knife-solo or Vagrant setup (although you can use the cookbook directly by adding it to run_list or by including it in your own cookbooks).

To use knife-solo or Vagrant you need to use the full source repository version. You can download and extract a tarball release or clone the git repository:

    $ git clone ruby_pkg
    $ cd ruby_pkg



  1. Install Ruby (1.9.3 or later) and Bundler
  2. Install knife-solo and dependencies:

    $ bundle install --without development:test

Building with knife-solo

  1. Copy ./nodes/example.json to for example ./nodes/myruby.json and edit it to match your wishes
  2. Bootstrap the server. Installs Chef and other knife-solo requirements and then builds and packages the specified Ruby version:

    $ bundle exec knife solo bootstrap  nodes/myruby.json

    You can also use knife-ec2, knife-digital_ocean, etc. For example:

    $ gem install knife-ec2
    $ knife ec2 server create --node-name=myruby ...
    # note the FQDN/IP for next phase

    If the server is already prepared, you can run only the converge phase:

    $ bundle exec knife solo cook  nodes/myruby.json
  3. Fetch the package from the server. For example:

    $ scp :/tmp/debian-7.0_ruby-1.9.3-p429-1_amd64.deb pkg/


Install Vagrant environment

  1. Install Vagrant v1.2 or later
  2. Install needed Vagrant plugins:

    $ vagrant plugin install vagrant-berkshelf
    $ vagrant plugin install vagrant-omnibus
  3. Add your favorite Vagrant box, for example:

    $ vagrant box add "ubuntu-12.04" ""

Building with Vagrant

Spin up the box to build and package a specified Ruby version:

$ VERSION="1.9.3-p429" BOX="ubuntu-12.04" vagrant up

The package will be created to pkg directory.

Environment variables for Vagrant

  • $BOX - The Vagrant box name. Defaults to "squeeze-6.0".
  • $DEBUG - If set, enable debug logging of the Chef run.
  • $VERSION - The Ruby version to package. Passed to ruby_build. Defaults to "1.9.3-p429"
  • $ITERATION - The package iteration version number. Passed to fpm. Defaults to 1.
  • $MAINTAINER - The (optional) package maintainer. Passed to fpm.

License and Author

Author:: Teemu Matilainen <>

Copyright © 2013, Reaktor Innovations Oy

Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE).

Dependent cookbooks

fpm-tng ~> 0.1.6
ruby_build ~> 0.6

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

No quality metric results found