【问题标题】:Emacs shell can't find ruby gems -- e.g., Could not find RubyGem haml (>= 0) (Gem::LoadError)Emacs shell 找不到 ruby​​ gem——例如,找不到 RubyGem haml (>= 0) (Gem::LoadError)
【发布时间】:2011-09-14 20:14:27
【问题描述】:

我的 emacs shell 无法加载任何已安装的 ruby​​ gem。尝试从 emacs 执行任何已安装的 gem 时出现 Gem::LoadError 但它可以在终端上运行。这是我在我的环境中查看的所有信息。感谢您的帮助!

  • 在我的 Mac OSX Snow 上运行 Emacs.app 豹(来自emacsformacosx 使用通用 dmg)。
  • 安装了 RVM,然后使用 RVM 安装 Ruby 1.9.2 和 1.8.7。
  • 安装了几个 gem,包括 铁轨和火腿。
  • 这些安装没有使用 root。

从终端 (bash),我可以运行 gem(例如,haml somepage.haml 或 rails create someapp)

在 emacs 中,我将 shell (bash) 路径设置为加载与终端 shell 相同的路径(通过 ~/.MacOSX/application.plist)。

echo $PATH 从终端和 emacs 返回相同的结果

我可以从 emacs shell 运行 IRB 和 rvm。

从 emacs shell 运行 gem list 显示我安装了 haml (3.1.2, 3.1.1)。 运行:which rvm, which gem, which haml#all 在终端和 Emacs 中返回相同的路径

当我尝试执行 gem(例如 haml)时,我得到以下信息:

/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:900:in report_activate_error': Could not find RubyGem haml (>= 0) (Gem::LoadError) from /Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:248:in activate' 来自 /Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1276:in gem' from /Users/me/.rvm/gems/ruby-1.9.2-p180/bin/haml:18:in '

【问题讨论】:

    标签: ruby emacs rubygems rvm


    【解决方案1】:

    确保您的GEM_HOME 环境变量设置正确,否则您可能会遇到问题。 rvm 确实将它从通常的位置移动,bundler 可以再次移动它。

    如果您从主目录加载 gem,这一点尤其重要,因为它们由 rvm 管理。

    【讨论】:

    • 谢谢,塔德曼。您的建议使我朝着正确的方向前进。我已经在 rvm 中明确设置了 gem_home 和 gem_path,但是这些并没有在 emacs 中被拾取。我尝试在 emacs 中设置 gem env,但未成功,但注意到在 emacs 中没有选择在 rvm 中更改 rubies。我最终通过 ELPA 使用了 rvm.el (github.com/senny/rvm.el) 并激活了当前的 ruby​​——成功了!希望对其他正在苦苦挣扎的人有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2016-09-18
    • 2012-11-05
    • 2011-09-10
    • 1970-01-01
    相关资源
    最近更新 更多