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


rvm (28) Versions 2.0.4

Manages system-wide and per-user RVMs and manages installed Rubies via Chef Resources.

cookbook 'rvm', '= 2.0.4', :supermarket
cookbook 'rvm', '= 2.0.4'
knife supermarket install rvm
knife supermarket download rvm
Quality 50%


<a name="title"></a> chef-rvm Build Status

WARNING - Please read!

There is currently a major rewrite going on with this cookbook to simplify
the interface to RVM with Chef. Expect the master branch to be very broken
until there is a 1.0 release. All previous pull requests will need to rebase
to the newer master to contribute to the newly re-factored resources.

<a name="description"></a> Description

Manages system-wide and per-user RVMs and manages installed Rubies.
Several resources are defined to accomplish these tasks.

<a name="requirements"></a> Requirements

<a name="requirements-chef"></a> Chef

Tested on 12.5.1 but older versions of chef may not work due to the changes
in the resource model. You are welcome to submit a pull request to add this

File an issue if this isn't the case.

<a name="requirements-platform"></a> Platform

The following platforms have been tested with this cookbook, meaning that
the recipes and LWRPs run on these platforms without error:

  • ubuntu (12.04 and higher)
  • debian (6.0 and newer)
  • mac_os_x (10.6/10.7) (See Platform Notes)
  • mac_os_x_server (See Platform Notes)
  • suse (openSUSE, SLES)
  • centos
  • amazon (2011.09)
  • scientific
  • redhat
  • fedora
  • gentoo

Please report any additional platforms so they can be added.

Platform Notes

<a name="platform-notes-osx"></a> OSX

This cookbook suggests the homebrew cookbook, which is needed to install
any additional packages needed to compile ruby. RVM now ships binary rubies,
but will require homebrew to install any additional libraries.

<a name="requirements-cookbooks"></a> Cookbooks

If you are installing JRuby then a Java runtime will need to be
installed. The Opscode java cookbook can be used on supported

<a name="installation"></a> Installation

Depending on the situation and use case there are several ways to install
this cookbook. All the methods listed below assume a tagged version release
is the target, but omit the tags to get the head of development. A valid
Chef repository structure like the Opscode repo is also assumed.

<a name="installation-berkshelf"></a> Using Berkshelf

Berkshelf is a way to manage a cookbook or an application's
cookbook dependencies. Include the cookbook in your Berksfile, and then run
berks install. To install using Berkshelf:

    gem install berkshelf
    cd chef-repo
    berks init
    echo "cookbook 'rvm', github: 'fnichol/chef-rvm'" >> Berksfile
    berks install

<a name="installation-librarian"></a> Using Librarian-Chef

Librarian-Chef is a bundler for your Chef cookbooks.
Include a reference to the cookbook in a Cheffile and run
librarian-chef install. To install Librarian-Chef:

    gem install librarian-chef
    cd chef-repo
    librarian-chef init
    cat >> Cheffile <<END_OF_CHEFFILE
    cookbook 'rvm',
      :git => 'git://', :ref => 'v0.10.1'
    librarian-chef install

<a name="recipes"></a> Recipes

<a name="recipes-default"></a> default

Installs the RVM gem and initializes Chef to use the Resources in this cookbook
for installing and managing RVM.

<a name="contributing"></a> Contributing

See the file


Make sure you have the following requirements setup:

After you bundle install run rake for unit tests and kitchen test for
integration level tests.

<a name="license"></a> License and Authors

Authors:: Aaron Kalin (


Copyright:: 2010 - 2017, Aaron Kalin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

applications Applicable Versions
chef-manageiq Applicable Versions
github_connector Applicable Versions
gitlab-server Applicable Versions
jenkins_utils Applicable Versions
kronia Applicable Versions
noosfero Applicable Versions
rails_rvm Applicable Versions
rubycas Applicable Versions
rvm_passenger_nginx Applicable Versions
scout-agent Applicable Versions
spree Applicable Versions
symfony Applicable Versions
webapp Applicable Versions


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

2.0.4 - 2023-09-29

2.0.3 - 2023-09-04

2.0.2 - 2023-09-04

2.0.1 - 2023-05-16

2.0.0 - 2023-04-17

  • Standardise files with files in sous-chefs/repo-management
  • Require Chef 15.3

1.1.13 - 2023-04-04

Standardise files with files in sous-chefs/repo-management

1.1.12 - 2023-04-01

1.1.11 - 2023-04-01

1.1.10 - 2023-04-01

Standardise files with files in sous-chefs/repo-management

1.1.9 - 2023-03-15

Standardise files with files in sous-chefs/repo-management

Standardise files with files in sous-chefs/repo-management

Standardise files with files in sous-chefs/repo-management

Standardise files with files in sous-chefs/repo-management

1.1.8 - 2023-02-18

Standardise files with files in sous-chefs/repo-management

1.1.7 - 2023-02-16

Standardise files with files in sous-chefs/repo-management

1.1.6 - 2023-02-15

1.1.5 - 2023-02-15

Standardise files with files in sous-chefs/repo-management

1.1.4 - 2022-12-08

Standardise files with files in sous-chefs/repo-management

1.1.3 - 2022-04-20

Standardise files with files in sous-chefs/repo-management

1.1.2 - 2022-02-17

  • Standardise files with files in sous-chefs/repo-management
  • Update tested platforms

1.1.1 - 2022-02-08

  • Remove delivery folder

1.1.0 - 2022-01-18

  • resolved cookstyle error: libraries/provider_rvm_ruby.rb:13:11 refactor: Chef/RedundantCode/UseCreateIfMissing

1.0.1 - 2021-08-30

  • Standardise files with files in sous-chefs/repo-management

1.0.0 (2020-09-16)

  • resolved cookstyle error: attributes/default.rb:70:18 refactor: ChefCorrectness/InvalidPlatformInCase
  • resolved cookstyle error: recipes/user_install.rb:29:48 convention: Layout/TrailingWhitespace
  • resolved cookstyle error: recipes/user_install.rb:29:49 refactor: ChefModernize/FoodcriticComments
  • resolved cookstyle error: libraries/provider_rvm_ruby.rb:6:7 refactor: ChefModernize/RespondToProvides

Breaking Changes

  • Re-factored the libraries and shell wrappers to more of an LWRP (@fnichol)


  • Updated default ruby to 1.9.3-p547 (@martinisoft)
  • Added a repository Code of Conduct (See (@martinisoft)


  • Pull request #246: Updated documenting use with librarian-chef (@ncreuschling)
  • Update URLs to point to sous-chefs GitHub org
  • Update the maintainer to be Sous Chefs

Bug Fixes

  • Pull request #285: Use GPG for rvm verification. (@lukeasrodgers)
  • Pull request #284: Use full class name for rvm_environment resource usage inside Chef::Provider::Package:RVMRubygems class. (@nomadium)
  • Pull request #300: Ability to configure key server and home did for rvm gpg_key (@lesniakania)
  • Pull request #298: Add GPG check for user installs (@cmluciano)
  • Pull request #325: Fix ruby block to align with new style (@cmluciano)
  • Remove unnecessary actions method in the rvm_ruby resource
  • Remove deprecated! ChefSpec report

0.9.2 (March 31, 2014)

Bug fixes

  • Pull request #137: Fix patch attribute support in rvm_ruby. (@mariussturm)
  • Pull request #140: Update MRI package requirements for scientific-6 platforms. (@aaronjensen)
  • Pull request #134: Fix vagrant_ruby default location on modern vagrant baseboxes. (@mveytsman)
  • Pull request #129: Fix broken example in README. (@zacharydanger)
  • Pull request #188: Added missing dependencies. (@fmfdias)
  • Pull request #151: Add Berkshelf installation instructions. (@justincampbell)
  • Pull request #128: Allow for universal rvmrc settings to be used in the user_install. (@firebelly)
  • Pull request #204: Minor spelling mistake (@dosire)
  • Pull request #183: Only log install when it actually happens (@zsol)

New features


0.9.0 (May 15, 2012)

RVM API tracking updates

  • Drop rake 0.9.2 from default global gems to match upstream default. (@fnichol)
  • Use RVM stable (stable/head) by default. (@fnichol)
  • Pull request #84: Add stable support to installer. (@xdissent)
  • Pull request #102: Switch URLs to and add "rvm get stable". (@mpapis)

Bug fixes

  • Pull request #64: Fix check for rvm in user install. (@dokipen)
  • Issue #61: Include Chef::RVM::StringHelpers to provide select_ruby function. (@jheth)
  • Pull request #94: Prevent rvm from reinstalling each chef run. (@xdissent)
  • Pull request #66: Fixing NoMethodError when using system wide rvm and the gem_package resource. (@kristopher)
  • Pull request #95: Fix missing patch resource attributes. (@xdissent)
  • Pull request #96: Fix wrapper paths, now works for both system and user installs. (@xdissent)
  • LWRPs now notify when updated (FC017). (@fnichol)
  • Node attribute access style (FC019). (@fnichol)
  • FC023: Prefer conditional attributes. (@fnichol)

New features

  • Update default Ruby to ruby-1.9.3-p194 (it's time). (@fnichol)
  • Pull request #86: Add patch attribute to rvm_ruby. (@smdern)
  • Pull request #76: Add wrapper for chef-client. (@bryanstearns)


0.8.6 (November 28, 2011)

RVM API tracking updates

  • Issue #56: Ensure that RVM version strings can be converted to RubyGems format. (@fnichol)
  • Issue #53: Update rvm/installer_url default to latest URL. (@fnichol)

Bug fixes

  • Issue #54, Pull request #55: Fix if statement typo in RVM::RubyGems::Package. (@bradphelan)
  • Pull request #57: Fix typo in RVM::RubyGems::Package. (@bradphelan)


  • Add note to README warning that chef 0.8.x will not work. (@fnichol)
  • Issue #48: Add example of local gem source installation in README. (@fnichol)

0.8.4 (October 16, 2011)

RVM API tracking updates

  • Issue #43, Pull request #46: Make explicit use of exec for RVM versions older than 1.8.6 and do for newer versions. (@ryansch, @fnichol)

Bug fixes

  • Pull request #39: Fix rvm_ruby provider on Ubuntu/Debian when installing JRuby. (@exempla)
  • Issues #38, #42: Update user_installs attribute to be an array of hashes in README. (@fnichol)

New features

  • Pull request #47: Handle installing a gem from a local file. (@ryansch)


0.8.2 (August 24, 2011)

Bug fixes

  • Ensure Ruby/gemset is installed in rvm_shell provider. (@fnichol)
  • Issue #35: Detect if user has RVM installed in rvm_shell provider. (@fnichol)


  • Array-ize node['rvm']['user_installs']. (@fnichol)

0.8.0 (August 22, 2011)

Bug fixes

  • Pull request #22: Expand list of sane rubies to include "ree" and "kiji". (@juzzin)
  • Pull request #26: RVM is installed in compilation phase when gem_package recipe is included. (@temujin9, @fnichol)
  • Update rvm/vagrant/system_chef_solo default attribute value to match newest Vagrant lucid32 basebox. (@fnichol)
  • Pull request #27: Explicitly handle the unmanaged 'system' ruby. (@temujin9).
  • Pull request #28: Fix bug when no RVM rubies had yet been installed. (@relistan).
  • Pull request #30: Implement 'group_users' support. (@phlipper).
  • Update ruby compilation dependencies for debian/ubuntu. (@fnichol)

New features

  • Issue #4: Per-user RVM installs with support in all LWRPs. (@fnichol)
  • Refactor system and user installs into: system_install, system, user_install, user (reference). (@fnichol)
  • Support Mac OS X platform for system-wide and per-user installs. (@fnichol)
  • Issue #23: Let gem_package resource target multiple RVM rubies. (@fnichol)
  • Pull request #26: Add new attribute group_id. (@temujin9)
  • General refactoring and re-modularizing. (@fnichol)


  • Pull request #26: RVM unix group is created in compilation phase if GID is provided. (@temujin9)
  • Revamp CHANGELOG in the style of guard. (@fnichol)
  • Pull request #27: Improve gem_package logging message to include full list of selected rubies. (@temujin9)
  • RVM gem installed using opscode cookbook conventions (via gem_package). (@fnichol)
  • Add RVM::Shell::ChefWrapper based on chef's popen4 impl. (@fnichol)
  • Create RVM::ChefUserEnvironment which can be injected with a user. (@fnichol)
  • Normalize 'missing gem' logging notices. (@fnichol)
  • Add Chef::RVM::StringCache to get and cache canonical RVM strings. (@fnichol)
  • Modularize libraries/helpers.rb in modules. (@fnichol)
  • Issue #25: Add installation options/instructions to README. (@fnichol)

0.7.1 (May 15, 2011)

Bug fixes

  • Issue #20: Update metadata.rb to not include (too long). (@fnichol)

New features

  • Add Rakefile for opscode platform deploy builds. (@fnichol)


  • Update metadata.rb properties. (@fnichol)

0.7.0 (May 14, 2011)

Bug fixes

  • Issue #20: Update rvm/install_rubies attr to "true"/"false". (@fnichol)
  • Issue #14: Allow no default RVM ruby (i.e. use system ruby). (@fnichol)
  • Issue #12: Update RVM install to use SSL URL. (@fnichol)
  • Now /etc/rvmrc has export for rvm/rvmrc key/value pairs. (@fnichol)

New features

  • Issue #13: Speed up install by disabling RDOC generation. (@fnichol)
  • New experimental recipe gem_package which patches gem_package resource. (@fnichol)
  • Add rvm_global_gem resource. (@fnichol)


  • Issue #3: Revamp and update (@fnichol)
  • Issue #3: Add (@fnichol)
  • Issue #19: Attr rvm/upgrade accepts "none", false and nil as same value. (@fnichol)
  • Update rvm/skip_docs_on_install attr to rvm/rvm_gem_options. (@fnichol)
  • Refactor of rvm_gem provider to leverage Chef::Provider::Package::Rubygems. (@fnichol)

Previous releases

The changelog began with version 0.6.0 so any changes prior to that can be
seen by checking the tagged releases and reading git commit messages.

Collaborator Number Metric

2.0.4 passed this metric

Contributing File Metric

2.0.4 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Cookstyle Metric

2.0.4 passed this metric

No Binaries Metric

2.0.4 passed this metric

Testing File Metric

2.0.4 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Version Tag Metric

2.0.4 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must include a tag that matches this cookbook version number