Project

gs

0.04
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Gemset management
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Make your life easier with gemsets

We have all become familiar with the concept of gemsets. They come in different shapes and sizes, and provide isolation for project dependencies. Some of the libraries that implement gemsets are rip, RVM and rbenv-gemset.

This library recreates the absolutely minimal feature set for creating and using gemsets.

Introductory screencast

If you want to see this workflow in action, check the introductory video. The other tool showcased in the screencast is dep, a dependency tracker.

Usage

This library provides a command line application called gs. These are the available options:

gs init

Creates the $PWD/.gs directory.

gs help

Displays the documentation.

gs [command]

When called with no arguments, it starts a shell session and configures the variables GEM_HOME, GEM_PATH and PATH to point to the $PWD/.gs directory. In addition, it sets the GS_NAME variable with the name of the current gemset (useful for PS1).

When called with arguments other than init or help, it will execute command in a gs shell session and return to the parent session once finished.

Getting started

First, grab the gem:

  $ gem install gs

Next, type gs init within your project and then just gs to start the subshell. The environment variables used by RubyGems will now point to the .gs directory, and every gem you install, every gem you remove, will use that path.

Alternatives

There are some tools that provide a similar functionality and can be used as a drop in replacement for gs. Here are two outstanding alternatives:

This is a bash implementation that modifies the existing environment instead of creating a subshell.

This is a manager for environment variables written in bash. It takes a different and very interesting approach.