【发布时间】:2012-06-30 19:59:27
【问题描述】:
RubyGems 是 Ruby 编程语言的包管理器,它提供了一种用于分发 Ruby 程序和库的标准格式(采用称为“gem”的自包含格式),一种旨在轻松管理 gem 安装的工具,以及分发它们的服务器。它类似于 Python 编程语言的 EasyInstall。 RubyGems 现在是 Ruby 1.9 版标准库的一部分。
也就是说,GEM_HOME 和 GEM_PATH 有什么区别?
【问题讨论】:
RubyGems 是 Ruby 编程语言的包管理器,它提供了一种用于分发 Ruby 程序和库的标准格式(采用称为“gem”的自包含格式),一种旨在轻松管理 gem 安装的工具,以及分发它们的服务器。它类似于 Python 编程语言的 EasyInstall。 RubyGems 现在是 Ruby 1.9 版标准库的一部分。
也就是说,GEM_HOME 和 GEM_PATH 有什么区别?
【问题讨论】:
GEM_PATH 提供了可以找到宝石的位置(可能有多个)。
GEM_HOME 是安装 gem 的地方(默认)。
(因此GEM_PATH 应该包括GEM_HOME)。
【讨论】:
GEM_PATH 就像 PATH 用于 gems(gem 所在的目录列表)。至少chruby 将GEM_HOME 设置为GEM_PATH 中的第一项。
:
还有有趣的通知。至少在 Wndows XP 上,不知道其他平台。
在 Windows 中设置GEM_HOME:
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_HOME 与GEM_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。
【讨论】: