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_HOME
和GEM_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
。