Emacs shell找不到ruby gems - 例如,找不到RubyGem haml(> = 0)(Gem :: LoadError)

pfr*_*ies 5 ruby emacs rubygems rvm

我的emacs shell无法加载任何已安装的ruby gem.我在尝试从emacs执行任何已安装的gem时遇到Gem :: LoadError,但它可以从Terminal工作.以下是我在环境中审核的所有信息.谢谢你的帮助!

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

从终端(bash),我可以运行宝石(例如,haml somepage.haml或rails创建someapp)

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

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

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

gem list从emacs shell 运行显示我安装了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'from /Users/me/.rvm/rubies/ruby- 1.9.2-p180/lib/ruby​​/site_ruby/1.9.1/ruby​​gems.rb:1276:in gem' from /Users/me/.rvm/gems/ruby-1.9.2-p180/bin/haml:18:in '

tad*_*man 5

确保您的GEM_HOME环境变量设置正确或者您可能遇到问题.rvm确实从通常的位置bundler移动它,并可以再次移动它.

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

  • 谢谢,塔德曼.你的建议让我朝着正确的方向前进.我已经在rvm中明确设置了gem_home和gem_path,但这些都没有在emacs中被选中.我试图在emacs中设置gem envs,但未成功,但注意到在emacs中没有选择更改rvm中的rubies.我最终通过ELPA使用rvm.el(https://github.com/senny/rvm.el)并激活当前的红宝石 - 工作!希望能帮助其他任何挣扎的人. (3认同)