Ruby 什么';GEM_HOME和GEM_PATH的区别是什么?

Ruby 什么';GEM_HOME和GEM_PATH的区别是什么?,ruby,rubygems,Ruby,Rubygems,RubyGems是Ruby编程语言的一个包管理器,它提供了一种分发Ruby程序和库的标准格式(以一种称为“gem”的自包含格式),一种设计用于轻松管理gem安装的工具,以及一个分发它们的服务器。它类似于Python编程语言的EasyInstall。RubyGems现在是Ruby 1.9版标准库的一部分 也就是说,GEM_HOME和GEM_PATH有什么区别?GEM_PATH提供了可以找到GEM的位置(可能有几个) GEM_HOME是安装gems的地方(默认情况下) (因此GEM\u路径应该包括G

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


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

GEM_PATH
提供了可以找到GEM的位置(可能有几个)

GEM_HOME
是安装gems的地方(默认情况下)


(因此
GEM\u路径
应该包括
GEM\u HOME
)。

还有一个有趣的注意事项。至少在Wndows XP上,不知道其他平台

在Windows中设置
GEM_HOME

C:\>set GEM_HOME=C:\sbox\ruby\dump\.gems
现在让我们检查一下

1) 在Windows环境中。一切正常,如预期:

C:\>set
...
GEM_HOME=C:\sbox\ruby\dump\.gems
...
2) 使用
gem env
。请注意,它将
GEM_HOME
GEM_PATH
s放在第一位:

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

您的答案不太清楚
GEM_PATH
类似于GEM的
PATH
(GEM所在的目录列表)。至少
chruby
GEM\u HOME
设置为
GEM\u路径
中的第一项。如何界定多个路径?它是否与路径相同,使用冒号字符<代码>:是的,我想是的。