Ruby gem的默认搜索路径是什么?即默认的GEM_HOME

mjs*_*mjs 22 ruby gem search path

Ruby gem的默认搜索路径是什么?我试图想我可以通过哪些目录gem的--install-dir开关,这样我就不必设置环境变量GEM_HOME对被发现的宝石.

特别是,如果我安装gem jekyll via

$ gem install --bindir /usr/local/bin --install-dir /usr/local/lib/ruby/gems/1.8 jekyll
Run Code Online (Sandbox Code Playgroud)

然后/usr/local/bin/jekyll在没有明确设置的情况下找不到它的库GEM_HOME:

$ jekyll --help
/usr/lib/ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem jekyll (>= 0) (Gem::LoadError)
    from /usr/lib/ruby/1.8/rubygems.rb:214:in `activate'
    from /usr/lib/ruby/1.8/rubygems.rb:1082:in `gem'
    from /usr/local/bin/jekyll:18
$ GEM_HOME=/usr/local/lib/ruby/gems/1.8 jekyll --help
Jekyll is a blog-aware, static site generator.
[ ... ]
Run Code Online (Sandbox Code Playgroud)

似乎ruby本身会查看Ruby变量中列出的目录,这些目录$LOAD_PATH可以通过环境变量进行扩充RUBYLIB.但是,rubygem系统在哪里搜索宝石?

Hon*_*gli 33

类型gem env.那会告诉你你想知道什么.

  • 它提供了三个目录,例如在 osx `/Library/Ruby/Gems/2.3.0` 上。和`/Users/apple/.gem/ruby/2.3.0`和`/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0`。那么哪个是 GEM_PATH 的默认值,哪个是 GEM_HOME 的默认值? (2认同)