GEM_HOME和GEM_PATH有什么区别?


76

RubyGems是Ruby编程语言的软件包管理器,它提供了用于分发Ruby程序和库的标准格式(采用称为“ gem”的独立格式),旨在轻松管理gems安装的工具以及用于以下目的的服务器:分发它们。它类似于Python编程语言的EasyInstall。RubyGems现在是Ruby 1.9版标准库的一部分。

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

Answers:


96

GEM_PATH 提供可以找到宝石的位置(可能有几个)。

GEM_HOME 是gem的安装位置(默认情况下)。

(因此GEM_PATH应包括GEM_HOME)。


1
从您的答案中尚不清楚。GEM_PATH就像PATH是宝石(宝石所在的目录列表)一样。至少chruby设置GEM_HOME为中的第一项GEM_PATH
x-yuri

您如何界定多个路径?使用冒号与PATH一样吗?:
animationgif

14

也很有趣的通知。至少在Wndows XP上,对其他平台一无所知。

GEM_HOME在Windows中设置:

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

现在让我们检查一下。

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

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

2)用gem env。请注意,它GEM_HOMEGEM_PATHs一起放置,但放在首位:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.