【问题标题】:What is the default search path for Ruby gems? i.e. the default GEM_HOMERuby gem 的默认搜索路径是什么?即默认的 GEM_HOME
【发布时间】: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 系统在哪里搜索宝石呢?

【问题讨论】:

    标签: ruby search path gem


    【解决方案1】:

    输入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 的默认值?
    • 您可以使用gem env gemhomegem env gempath。要查找用户gemhome,可以使用ruby -e 'print Gem.user_dir'
    猜你喜欢
    • 2012-03-11
    • 2023-03-22
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多