enhance GEM_HOME support

Issue #94 new
Jon repo owner created an issue

Uru has limited support for user's pre-existing GEM_HOME envar.

Background...

On Windows, uru assumes that users install gems into their ruby installations. As such, uru does not generate a GEM_HOME envar and does not modify PATH to include a dir to the gem exes. A system ruby install may be different. If a GEM_HOME envar is defined when a user adds a system ruby via uru admin add system, the existing GEM_HOME value will be used whenever the system ruby is selected as the active ruby.

On Linux and OSX, GEM_HOME and PATH behavior is very different. Uru always generates and sets a GEM_HOME value except when using the system ruby that had no active GEM_HOME when it was registered via uru admin add system. Uru will use its generated GEM_HOME value to prepend PATH with a dir containing the gem exes.

Uru generates unsurprising GEM_HOME values of the form /home/$USER/.gem/$ruby/$version. For example, /home/jon/.gem/ruby/2.3.0 and /home/jon/.gem/jruby/1.7.3. These GEM_HOME values may cause issues if one had previously installed gems to other locations using ruby's defaults.

Currently, uru does not respect a user's GEM_HOME envar setting other that described above. Uru does not currently modify a user's GEM_PATH.

Comments (5)

  1. Jon reporter

    To make this feature a reality, it needs a hard core ruby dev who wants uru to have this feature on both *nix and Windows systems. Someone who is willing to put in the time to create a tested pull request.

    As I no longer use ruby for anything important, I'm not motivated to make this feature a reality.

  2. Jon reporter

    The desired result is to honor a user's GEM_HOME envar setting to allow the user to use gems installed in non-default locations. Both for the default scenario where uru hasn't yet activated a specific ruby runtime, and the scenario where uru activates a particular ruby runtime.

    Essentially, this would enable per-ruby runtime gem installations and likely could be used to enable per-project gem installations.

    Other than the inherent complexity of implementing the feature in a cross-platform manner, my initial concern was how much would conflict with other widely used things like bundler.

  3. Log in to comment