What's the difference between GEM_HOME and GEM_PATH?
Solution 1:
GEM_PATH
provides the locations (there may be several) where gems can be found.
GEM_HOME
is where gems will be installed (by default).
(Therefore GEM_PATH
should include GEM_HOME
).
Solution 2:
Also interesting notice. At least on Wndows XP, don't know about other platforms.
Set GEM_HOME
in Windows:
C:\>set GEM_HOME=C:\sbox\ruby\dump\.gems
Now let's check this.
1) In Windows ENVs. All OK, as expected:
C:\>set
...
GEM_HOME=C:\sbox\ruby\dump\.gems
...
2) With gem env
. Notice it puts GEM_HOME
along with GEM_PATH
s but at the first place:
C:\>gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.3
- RUBY VERSION: 2.0.0 (2013-02-24 patchlevel 0) [i386-mingw32]
- INSTALLATION DIRECTORY: C:/sbox/ruby/dump/.gems
- RUBY EXECUTABLE: C:/Ruby200/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/sbox/ruby/dump/.gems/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mingw32
- GEM PATHS:
- C:/sbox/ruby/dump/.gems
- C:/Documents and Settings/User/.gem/ruby/2.0.0
- C:/Ruby200/lib/ruby/gems/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
3) Now with bundle env
:
C:\>bundle env
Bundler 1.3.4
Ruby 2.0.0 (2013-02-24 patchlevel 0) [i386-mingw32]
Rubygems 2.0.3
GEM_HOME C:\sbox\ruby\dump\.gems
GEM_PATH
GEM_PATH
is empty, it means default value. But from where does it take the default value? See gem env
.