/chef-rvm

Chef cookbook with resources to install and configure Ruby via the Ruby Version Manager (RVM).

Primary LanguageRubyApache License 2.0Apache-2.0

chef-rvm Build Status

WARNING - Please read!

There is currently a major rewrite going on with this cookbook to simply 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.

Description

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

Requirements

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 support.

File an issue if this isn't the case.

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

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.

Cookbooks

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

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.

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

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://github.com/fnichol/chef-rvm.git', :ref => 'v0.10.1'
END_OF_CHEFFILE
librarian-chef install

Recipes

default

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

Contributing

See the CONTRIBUTING.md file

Testing

Make sure you have the following requirements setup:

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

License and Authors

Authors:: Aaron Kalin (akalin@martinisoftware.com)

Contributors:: https://github.com/martinisoft/chef-rvm/contributors

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

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.