【问题标题】:Gem Path Issue: RubyGems looking in the wrong place宝石路径问题:RubyGems 找错了地方
【发布时间】:2011-09-14 13:31:25
【问题描述】:

当我需要某些宝石时,它们中的一些有效,而另一些无效。他们似乎安装了 find,我可以做一个 gem 列表,他们就在那里。但是,当我尝试在 Irb 中运行它们或从终端运行我的 ruby​​ 程序时,我得到以下信息:

LoadError: no such file to load -- sanitize

/Library/Ruby/Site/1.8/rubygems/custom_require.rb:54:in `gem_original_require'

所以我按照 RubyGems 上的指南进行操作,一切似乎都很好:

noahclark$ gem list sanitize
*** LOCAL GEMS ***
sanitize (2.0.3)


noahclark$ ruby -rubygems -e 'require "sanitize"'
noahclark$ 

noahclark$ which ruby
/opt/local/bin/ruby
noahclark$  gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /opt/local/bin/ruby

然后我尝试了:

noahclark$ which gem
/opt/local/bin/gem

noahclark$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10]
- INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin
- RUBYGEMS PLATFORMS:
    - ruby
   - x86-darwin-10
 - GEM PATHS:
    - /opt/local/lib/ruby/gems/1.8
    - /Users/noahclark/.gem/ruby/1.8
 - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
    - :benchmark => false
    - :backtrace => false
    - :bulk_threshold => 1000
 - REMOTE SOURCES:
    - http://rubygems.org/

您可以看到哪个 gem 和 gem 环境正在查看两个单独的目录。我四处寻找修复程序,但只能找到建议将 export PATH=$PATH:/opt/local/bin/gem 添加到我的 .bashrc 文件的内容。这并没有解决它。

我应该如何解决这个问题?

【问题讨论】:

    标签: ruby rubygems gem


    【解决方案1】:

    根据您的错误消息中的路径,您的 irb 和应用程序可能正在使用默认的系统 ruby​​。

    which irb 显示什么? 您用来运行应用程序的命令行是什么?

    您可能需要调整脚本的 shebang 行(以“#!”开头的第一行)以使用 /opt/local/bin/ruby。

    【讨论】:

    • 哪个 irb 导致 /opt/local/bin/irb
    • @noahclark 这显示了什么错误(如果有):irb -rubygems -r sanitize
    • 很奇怪,我运行它的工作。我已重新启动计算机以确保已加载 .bashrc,但这并没有帮助。不知道我做了什么或为什么它现在有效,但它确实有效!谢谢!
    • 我只是尝试过这样做,它之前已修复,现在又恢复了,所以即使我没有更改任何内容,我也遇到了问题。有什么想法吗?
    • @noah 你的意思是irb -rubygems -r sanitize 失败了吗?有什么错误?您是否使用了与成功时不同的终端会话?您是否将 /opt/local/bin(不是 /opt/local/bin/gem)添加到 .bashrc 中的 PATH 并重新启动会话?
    【解决方案2】:

    尝试将其添加到您的 .bashrc 中?

    export PATH=/opt/local/bin/gem:$PATH
    

    这为您的新 gem 路径提供了第一次破解,而不是当前的错误默认值。

    【讨论】:

    • @noahclark 你是如何安装 ruby​​ 的?如果你使用 macports,它应该已经改变了你的 ~/.profile,所以“/opt/local/bin”是第一个。您必须退出任何终端会话并打开新的会话 - 如果您没有这样做,您可能已经在系统 ruby​​ 下安装了一些 gem。
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 2013-01-18
    • 1970-01-01
    • 2020-12-06
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多