rbenv-gemset plugs in to the goodness of rbenv, and brings you gem management that is simple, easy to understand, set up (just one file with the simplest format ever!), and then use, to do pretty much everything that you really need to do with gemsets.
rbenv-gemset is an extension for the rbenv ruby version manager that allows you to use "gemsets", sandboxed collections of gems. This lets you have multiple collections of gems installed in different sandboxes, and specify (on a per-application basis) which sets of gems should be used.
New with v0.4.0! Project gemsets. Install all the gems that you want into a project directory; and then clean it all up very easily after you're done with rm -rf project
!
Clone rbenv-gemset to your $HOME/.rbenv/plugins
directory:
$ mkdir -p ~/.rbenv/plugins
$ cd ~/.rbenv/plugins
$ git clone git://github.com/jf/rbenv-gemset.git
If you want to use Homebrew (on Mac OS X):
$ brew update
$ brew install rbenv-gemset
In your application directory, create a file named .rbenv-gemsets
, with the
names of the gemsets that you want to use on separate lines, or separated
by whitespace. The first gemset in the list will be the primary gemset, where
new gems will be installed.
$ echo -e "my-gemset\nanother-gemset" > .rbenv-gemsets
Now all commands involving gems will use the gemsets that you've specified.
To have gems install into a sub-folder in your project directory for easy removal later (rm -rf project
!) / editing / testing,
you can use a project gemset. A project gemset has a '.' ("dot") as the first character:
$ echo '.gems' > .rbenv-gemsets
This will then install your gems into project/.gems/
. If you don't want to use a "dot directory" to house your gems (but still want to use a project gemset),
then do something like this instead:
$ echo './gems' > .rbenv-gemsets
This will then install your gems into project/gems/
.
The gemset plugin will cause rbenv to search for the .rbenv-gemsets
file in
the current directory, as well as in all ancestor directories, so as long
as there is an .rbenv-gemsets
file at or above the current directory.
Alternatively, you can set the RBENV_GEMSET_FILE environment variable to the absolute path of the gemset file.
Jamis Buck started the project in 2011, and Joe Fiorini took over as maintainer in May 2012. Jeffrey 'jf' Lim is now the current maintainer, and took over in July 2013.
This code is placed in the public domain by the author, Jamis Buck. Use it as you wish. Please prefer good over evil.