宝石安装出现问题?

4

我遇到了一个之前从未遇到过的问题。前几天,当我进入我的Sinatra项目中的Ruby项目并尝试运行bundle install时,出现了以下错误:

/Users/me/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:762:in `report_activate_error': Could not find RubyGem bundler (>= 0) (Gem::LoadError)

我觉得很奇怪,于是继续输入了下去

gem list

我看到了以下内容:

bundler (1.0.21, 1.0.2)

于是就有了bundler。在尝试卸载并重新安装bundler、使用rvm切换ruby版本后,我尝试运行其他的gem(例如rails)。于是我运行了rails s,结果出现了与bundler相同的错误:

 /Users/me/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems.rb:762:in`report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)

发生了什么事情?我尝试使用我的所有宝石做同样的事情,但都出现了相同的错误。这与rvm有关吗?我似乎想不起来最近几天是否做过任何不寻常的事情导致了这个问题。我唯一做的事情就是切换到带有Oh My ZSH的ZShell,但这不可能影响到这个问题。问题可能出在哪里?应该彻底卸载rvm然后重新安装它,再添加我拥有的ruby -v吗?我的环境是Mac OS X Lion。提前感谢。

编辑:

我现在解决了这个问题。我的转换到oh my zsh确实是引起问题的原因。我在找到答案的地方之一是这里:https://dev59.com/e2445IYBdhLWcg3wpb8P#4755696

基本上你需要做的是在你的

~/.zshrc

添加这一行:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 

这个命令可以在shell会话中加载rvm。问题解决了!感谢Felix Rabe指导我正确方向。


我对此有几个想法,但没有答案。首先:您尝试过SlimGems吗?当您使用which命令时会得到什么?例如which gemwhich bundler?您能在IRB中执行require 'bundler/setup'并获得true吗? - Felix Rabe
在irb中我得到了一个"undefined local variable or method bundler for main:Object"的错误信息。当我执行"which bundler"时,返回了"bundler not found"。而当我执行"gem"命令时,返回了"/Users/me/.rvm/rubies/ruby-1.9.2-p0/bin/gem"的路径。您怎么看待这个问题? - Tim
刚刚在谷歌上搜索了“zsh rvm”,在http://beginrescueend.com/integration/zsh/上发现了以下内容:“如果你想使用oh my zsh,请确保不要使用bundler包。如果rvm应该为您处理所有这些工作,那么这将自动为您完成。” - Felix Rabe
Felix:谢谢你的回答。我不知道我的转换到oh my zsh会导致这个问题。我回家后会研究一下。如果这是解决方案,我会将你的答案标记为正确的。谢谢。 - Tim
将这行代码添加到我的.zshrc文件中非常有效!节省了我数小时的烦恼。+1 - Jules Copeland
显示剩余2条评论
2个回答

3
您使用 "Oh my ZSH" 和 RVM 可能是导致问题的原因。我谷歌了一下 zsh rvm,并在http://beginrescueend.com/integration/zsh上找到了以下内容:

如果您想使用 oh my zsh,请务必不要使用 bundler 包。 如果 rvm 应该为您处理这一切,那么这个包将会为您做同样的事情。

(从我的评论中复制而来以得到一个“可接受”的答案。)

太好了:) 我回家后会第一时间检查,因为错误出现在我家里的私人电脑上。 - Tim
Felix/Tim,你们能进一步解释一下吗?我已经阅读了提到的rvm文档页面,但对我来说毫无意义...此外,我通过另一种方式解决了这个问题,我会将其作为答案留下。 - Mario Zigliotto
很抱歉,我自己不使用ZSH,所以我既没有帮助你的技能,也没有进一步调查的兴趣。很可能你已经找到了比我更好的解决方案。 - Felix Rabe

0

我用不同的方法解决了这个问题。

我的~/.zshrc现在有了以下插件行,它解决了我遇到的问题:

plugins=(git bundler brew git osx ruby zsh-syntax-highlighting)

这类似于Ryan Bates在此处使用的配置:http://railscasts.com/episodes/308-oh-my-zsh


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接