RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries (in a self-contained format called a “gem”), a tool designed to easily manage the installation of gems, and a server for distributing them. It is analogous to EasyInstall for the Python programming language. RubyGems is now part of the standard library from Ruby version 1.9.
That said, what’s the difference between GEM_HOME and GEM_PATH?
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).
Also interesting notice. At least on Wndows XP, don’t know about other platforms.
GEM_HOME in Windows:
Now let’s check this.
1) In Windows ENVs. All OK, as expected:
C:\>set ... GEM_HOME=C:\sbox\ruby\dump\.gems ...
gem env. Notice it puts
GEM_HOME along with
GEM_PATHs 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
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