RubyGems是Ruby编程语言的包管理器,它提供了一种用于分发Ruby程序和库的标准格式(以一种称为“gem”的自包含格式),一种用于轻松管理gem的安装的工具,以及用于分发它们的服务器。它与Python编程语言的EasyInstall类似。 RubyGems现在是Ruby 1.9版标准库的一部分。
那说,GEM_HOME和GEM_PATH之间的区别是什么?
答案 0 :(得分:89)
GEM_PATH提供了可以找到宝石的位置(可能有几个)。
GEM_HOME是安装宝石的地方(默认情况下)。
(因此GEM_PATH应包含GEM_HOME)。
答案 1 :(得分:13)
也有趣的通知。至少在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
。