什么是GEM_HOME和GEM_PATH之间的区别?(What's the differen

2019-06-25 22:24发布

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

这就是说,有什么GEM_HOME和GEM_PATH之间的区别?

Answer 1:

GEM_PATH提供其中宝石可以发现的位置(可能有多个)。

GEM_HOME就是宝石将被安装(默认)。

(因此GEM_PATH应包括GEM_HOME)。



Answer 2:

同样有趣的通知。 至少在的Wndows XP,不知道其他平台。

设置GEM_HOME在Windows中:

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

现在,让我们检查一下。

1)在Windows ENVS。 一切OK,符合市场预期:

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



文章来源: What's the difference between GEM_HOME and GEM_PATH?
标签: ruby rubygems