Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs外壳可以';找不到ruby gems——例如,找不到RubyGem haml(>;=0)(Gem::LoadError)_Ruby_Emacs_Rubygems_Rvm - Fatal编程技术网

Emacs外壳可以';找不到ruby gems——例如,找不到RubyGem haml(>;=0)(Gem::LoadError)

Emacs外壳可以';找不到ruby gems——例如,找不到RubyGem haml(>;=0)(Gem::LoadError),ruby,emacs,rubygems,rvm,Ruby,Emacs,Rubygems,Rvm,我的emacs外壳无法加载任何已安装的ruby gems。当试图从emacs执行任何已安装的Gem时,我得到一个Gem::LoadError,但它可以从终端运行。以下是我在环境中查看的所有信息。谢谢你的帮助 在我的Mac OSX Snow上运行Emacs.app 豹(来自 使用通用dmg) 安装RVM,然后使用RVM 安装Ruby 1.9.2和1.8.7 安装了几个gem,包括 铁轨和haml 这些安装没有使用root 从终端(bash),我能够运行gems(例如,haml somepage

我的emacs外壳无法加载任何已安装的ruby gems。当试图从emacs执行任何已安装的Gem时,我得到一个Gem::LoadError,但它可以从终端运行。以下是我在环境中查看的所有信息。谢谢你的帮助

  • 在我的Mac OSX Snow上运行Emacs.app 豹(来自 使用通用dmg)
  • 安装RVM,然后使用RVM 安装Ruby 1.9.2和1.8.7
  • 安装了几个gem,包括 铁轨和haml
  • 这些安装没有使用root
从终端(bash),我能够运行gems(例如,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
#在终端和Emacs中都返回相同的路径

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

/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:900:in
报告\u激活\u错误”:无法
查找RubyGem haml(>=0)
(Gem::LoadError)来自
/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:248:in
从中激活 /Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:1276:in
gem'来自
/Users/me/.rvm/gems/ruby-1.9.2-p180/bin/haml:18:in
'


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


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

管理的,谢谢,塔德曼。你的建议使我走上了正确的方向。我在rvm中明确地设置了gem_home和gem_路径,但在emacs中没有得到这些设置。我试图在emacs中设置gem env,但没有成功,但我注意到在rvm中更改红宝石在emacs中没有被拾取。我最终通过ELPA使用了rvm.el()并激活了当前的ruby——成功了!希望这能帮助其他挣扎的人。