GEM_HOME和GEM_PATH有什么区别?

RubyGems是Ruby编程语言的一个包pipe理器,它提供了一个用于分发Ruby程序和库的标准格式(一种被称为“gem”的独立格式),一个devise用于轻松pipe理gem安装的工具,以及一个服务器分发他们。 这与Python编程语言的EasyInstall类似。 RubyGems现在是Ruby 1.9版标准库的一部分。

也就是说,GEM_HOME和GEM_PATH有什么区别?

GEM_PATH提供可以findgem的位置(可能有几个)。

GEM_HOME是安装gem的地方(默认)。

(因此GEM_PATH应该包含GEM_HOME)。

也有趣的通知。 至less在Wndows XP上,不了解其他平台。

在Windows中设置GEM_HOME

 C:\>set GEM_HOME=C:\sbox\ruby\dump\.gems 

现在我们来检查一下。

1)在Windows ENVs中。 一切正常,如预期的那样:

 C:\>set ... GEM_HOME=C:\sbox\ruby\dump\.gems ... 

2)与gem env 。 注意它把GEM_HOMEGEM_PATH一起放在第一位:

 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)现在使用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是空的,它表示默认值。 但是从哪里取得默认值呢? 参见gem env