【发布时间】:2011-02-20 09:16:30
【问题描述】:
Ruby gem 的默认搜索路径是什么?我试图弄清楚我可以将哪些目录传递给gem 的--install-dir 开关,这样我就不必设置环境变量GEM_HOME 来找到宝石。
特别是,如果我通过安装 gem jekyll
$ gem install --bindir /usr/local/bin --install-dir /usr/local/lib/ruby/gems/1.8 jekyll
那么/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.
[ ... ]
似乎 ruby 本身会在 Ruby 变量 $LOAD_PATH 中列出的目录中查找,该变量可以通过环境变量 RUBYLIB 进行扩充。但是,rubygem 系统在哪里搜索宝石呢?
【问题讨论】: