2011-06-14 51 views
5

我的emacs shell无法加载任何已安装的ruby宝石。当试图从emacs执行任何已安装的gem时,我得到一个Gem :: LoadError,但它从终端运行。以下是我在我的环境中查看的所有信息。谢谢你的帮助!Emacs shell无法找到红宝石 - 例如,找不到RubyGem haml(> = 0)(Gem :: LoadError)

  • 在我的Mac OSX雪 豹运行Emacs.app(从emacsformacosx 使用通用DMG)。
  • 安装了RVM,然后使用RVM到 安装了Ruby 1.9.2和1.8.7。
  • 安装了几个宝石,包括 rails和haml。
  • 没有使用root进行这些安装。

从终端(bash)的,我能够运行的宝石(例如,HAML somepage.haml或轨道创建someapp)

在Emacs,我给自己定的外壳(bash)的路径加载和终端shell一样(通过〜/ .MacOSX/application.plist)。

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

我可以运行IRB和RVM从emacs的壳。

从emacs shell运行gem list显示我安装了haml(3.1.2,3.1.1)。 运行:which rvm, which gem, which haml #ALL返回两个终端和Emacs

相同的路径当我尝试执行宝石(例如,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'from /Users/me/.rvm/rubies/ruby-1.9.2- P180/lib中/红宝石/ site_ruby/1.9.1/ruby​​gems.rb:1276:在 gem' from /Users/me/.rvm/gems/ruby-1.9.2-p180/bin/haml:18:in '

回答

5

确保ÿ我们的GEM_HOME环境变量设置正确,否则可能会遇到问题。 rvm的确从一般位置移动,并且bundler可以再次移动它。

如果您从主目录加载宝石,这是特别重要的,因为它们由rvm管理。

+3

谢谢,tadman。你的建议让我朝着正确的方向发展。我已经明确地在rvm中设置了gem_home和gem_path,但是这些并没有在emacs中找到。我尝试过在emacs中设置gem envs失败,但注意到在rvm中更改ruby没有在emacs中找到。我最终通过ELPA使用rvm.el(https://github.com/senny/rvm.el)并激活了当前的ruby - 工作!希望能帮助任何正在挣扎的人。 – pfries 2011-06-15 13:49:25